这是原始 SwiftSH 模块的一个分支,包含一些错误修复和我为 SwiftTerm 模拟器所做的更改。上游软件包似乎不活跃。
虽然最初支持 Carthage、Pods 和其他平台,但我没有尝试更新它们,现在我已经迁移到 SwiftPM,这为我解决了很多问题。
此外,这还增加了一个基于回调的身份验证系统,现在您可以使用它通过安全 enclave 进行身份验证。
一个 Swift SSH 框架,封装了 libssh2。
功能特性
CocoaPods 是 Swift 和 Objective-C Cocoa 项目的依赖管理器。它拥有超过一万个库,可以帮助您优雅地扩展项目。
将其添加到您的 Podfile 中
use_frameworks!
pod 'SwiftSH'
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()
SwiftSH 包含使用 此脚本 生成的 Libssh2 和 OpenSSL 的预编译二进制文件。出于安全原因,强烈建议您重新编译这些库并替换二进制文件。
SwiftSH 在 MIT 许可证下发布。有关详细信息,请参阅 LICENSE。