1
我想讓我的程序使用SSH連接到另一臺計算機。這將是通用的(用戶將提供主機名,IP和密碼),所以不能使用密鑰。這是我到目前爲止的代碼:查找SSH連接是否成功
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的唯一命令,因爲Terminal強制用戶輸入密碼。我知道這段代碼能夠建立連接,因爲我的測試目標計算機上的system.log顯示它。謝謝。
是否有任何其他方式可以立即找到狀態而無需等待終止? –
對不起,我根本不使用Swift,所以我不能在這裏給出一個可靠的答案。您可以輪詢'isRunning'幾秒鐘以查看連接是否失敗,但除非您執行一些線程管理,否則任何等待都會阻止上游呼叫。 –