Как можно запустить и взаимодействовать с программой, такой как ssh, в терминале bash, используя swift 4 и игровые площадки?Терминальные команды могут быть выполнены на игровой площадке Mac swift с кодом, таким как:
@discardableResult func shell(_ command: String) -> String {
let task = Process()
task.launchPath = "/bin/bash"
task.arguments = ["-c", command]
let pipe = Pipe()
task.standardOutput = pipe
task.launch()
let data = pipe.fileHandleForReading.readDataToEndOfFile()
let output: String = NSString(data: data, encoding: String.Encoding.utf8.rawValue)! as String
return output
}
// Example usage:
let t = shell("ls")
print("\(t)") //prints dir listing
Однако я хотел бы иметь возможность взаимодействовать с программами, такими как ssh, и программами, которые не являются интерактивными, такими как ls.Например, команда:
let t = shell("ssh xxx.xxx.xxx.xxx -T -l root -p 22")
запустит ssh, а ssh через терминал запросит пароль.Я хочу иметь возможность программно предоставить пароль и продолжить.Мне кажется, что, поскольку SSH работает в контексте терминала, этого достаточно для хакерских терминалов stdin и stdout, я до сих пор не добился успеха.Вот некоторые ресурсы, которые я нашел, которые предоставляют некоторую информацию о хай-джекках:
Большой ботаник о хай-джэкджах
Средняя статья
Любойидеи о том, если и как это может быть достигнуто?