Recentemente, ho provato a creare un (molto) semplice programma con Swift che consente di connettersi a un server tramite SSH ed eseguire alcuni file. Sfortunatamente, non sono riuscito a capire come avviare una sessione SSH completamente all'interno dell'app Swift. Ecco un po 'di codice che ho scritto:Connettività SSH tramite Swift
var sshConnectCommand = ["-c", "spawn ssh "+sshUsername+"@"+sshHost+"; expect assword:; send "+sshPassword+"\r"]
func sshIn() {
//starting ssh session
let sshConnect = NSTask()
sshConnect.arguments = [testCmd]
//rerouting output through a pipe
sshConnect.standardOutput = logAppend
//launch!
sshConnect.launch();
}
Come potete vedere, ho usato NSTask per cercare di eseguire il comando 'aspettare' di inserire la password e tutto. Vorrei provare ad evitare l'uso di SSH-keygen il più possibile poiché è destinato a essere utilizzato su un server a cui l'utente non ha accesso.
Quindi, per riassumere: Come collegarsi a SSH senza SSH-keygen pur rimanendo completamente all'interno del codice dell'applicazione?
modifica: dovrei aggiungere anche, quando provo a compilare, ottengo questo errore: [Swift._SwiftDeferredNSArray fileSystemRepresentation]: unrecognized selector sent to instance 0x600000032500
. Non sono sicuro di cosa significhi.
Sembra che tu abbia un array da qualche parte che un altro oggetto (un NSURL, immagino) sia previsto. – Kevin