SwiftSH

这是原始 SwiftSH 模块的一个分支,包含一些错误修复和我为 SwiftTerm 模拟器所做的更改。上游软件包似乎不活跃。

虽然最初支持 Carthage、Pods 和其他平台,但我没有尝试更新它们,现在我已经迁移到 SwiftPM,这为我解决了很多问题。

此外,这还增加了一个基于回调的身份验证系统,现在您可以使用它通过安全 enclave 进行身份验证。

原始自述文件

Carthage compatible Pods Pod platforms

一个 Swift SSH 框架,封装了 libssh2

功能特性

📦 安装

CocoaPods

CocoaPods 是 Swift 和 Objective-C Cocoa 项目的依赖管理器。它拥有超过一万个库,可以帮助您优雅地扩展项目。

将其添加到您的 Podfile

use_frameworks!

pod 'SwiftSH'

Carthage

Carthage 构建您的依赖项并为您提供二进制框架,但您可以完全控制您的项目结构和设置。

将其添加到您的 Cartfile

github "Frugghi/SwiftSH"

📖 文档

API 文档在此处 提供

💻 用法

导入框架

import SwiftSH

执行 SSH 命令

let command = Command(host: "localhost", port: 22)
// ...
command.connect()
       .authenticate(.byPassword(username: "username", password: "password"))
       .execute(command) { (command, result: String?, error) in
           if let result = result {
               print("\(result)")
           } else {
               print("ERROR: \(error)")
           }
       }

打开 SSH shell

let shell = Shell(host: "localhost", port: 22)
// ...
shell.withCallback { (string: String?, error: String?) in
         print("\(string ?? error!)")
     }
     .connect()
     .authenticate(.byPassword(username: "username", password: "password"))
     .open { (error) in
         if let error = error {
             print("\(error)")
         }
     }
// ...
shell.write("ls -lA") { (error) in
    if let error = error {
        print("\(error)")
    }
}
// ...
shell.disconnect()

⚠️OpenSSL 和 Libssh2 二进制文件

SwiftSH 包含使用 此脚本 生成的 Libssh2 和 OpenSSL 的预编译二进制文件。出于安全原因,强烈建议您重新编译这些库并替换二进制文件。

📄 许可证 LICENSE

SwiftSH 在 MIT 许可证下发布。有关详细信息,请参阅 LICENSE