2015-07-14 17 views
5

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.

+0

Sembra che tu abbia un array da qualche parte che un altro oggetto (un NSURL, immagino) sia previsto. – Kevin

risposta

Problemi correlati