【发布时间】:2017-11-06 19:46:54
【问题描述】:
我正在尝试让我的程序使用 SSH 连接到另一台计算机。它是通用的(用户将提供主机名、IP 和密码),因此不能使用密钥。这是我到目前为止的代码:
func terminalSSH(host:String, password:String, IP:String) {
let pipe = Pipe()
let args = ["-p", password, "ssh", "\(host)@\(IP)"]
let task = Process()
task.launchPath = "/usr/local/bin/sshpass"
task.arguments = args
task.standardOutput = pipe
task.launch()
let data = pipe.fileHandleForReading.readDataToEndOfFile()
let output = NSString(data: data, encoding: String.Encoding.utf8.rawValue)
print(output)
}
我的问题是我看不到使用 sshpass 连接是否成功。我希望在连接成功或失败时通知用户。此外,似乎 sshpass 是我可以用于 SSH 的唯一命令,因为终端强制用户输入密码。我知道这段代码可以建立连接,因为我的测试目标计算机上的 system.log 会显示它。谢谢。
【问题讨论】:
标签: swift macos shell ssh swift3