• Das kreative Thema des Monats Oktober wird vor allem diejenigen unter Euch besonders ansprechen, denen Do-it-yourself quasi im Blut liegt. Zeigt uns Eure Improvisationskünste oder fotografiert, was andere Leute sich so im Alltag zusammengestrickt haben. --> Zum Mitmachen bitte hier klicken

SSH-Session in Objective-C -- Machbar?

  • Ersteller Ersteller Mitglied 26876
  • Erstellt am Erstellt am

Mitglied 26876

Gast
Hallo!

Nun, ich habe ein Problem von der Haushaltung eines Prozesses in meinem Programm. Der Prozess ist jetzt kein Prozess in dem Sinne des Computers.
Nein, es geht darum wie und ob ich eine SSH-Session in einem Objective-C Programm zu einem anderen Rechner aufbauen kann. Nein, auch die Formulierung ist nicht richtig, weil das habe ich bereits geschafft. Jedoch mit dem Nebenproblem der Zertifikate. Ja wie kann ich einen unbekannten Host erreichen, also zu dem kein Zertifikat vorliegt?

Habe bisher nur eine Lösung programmieren können, die ohne Passwort auf einen anderen Rechner per SSH zugreift, eben über Zertifikate.
Aber ganz ehrlich: Ich habe von Zertifikaten keine Ahnung! Ich versuche eigentlich einfach einen
Code:
ssh user@hostname
-- Password
zu erstellen. Ja, aber geht es denn überhaupt, dass ich einen NSTask starte, der eine SSH-Verbindung mit übergebenem Passwort aufbaut? Ich habe in der man von SSH eben keinen Parameter für das Passwort gefunden, nur den für den User.
Kann ich daraus schließen, dass ich kein Password übergeben soll/darf?
Ich hätte das Passwort in den NSUserdefaults gesichert. Nun das ist das Stichwort … gesichert… Nur gespeichert, oder auch gesichert?

Also meine Frage:
Wie würdet ihr es machen/mir empfehlen es zu machen? Wichtige Punkte dabei sind:
Ich bin ein Einsteiger, ich will jetzt nichts programmieren, das irgendwie kompliziert Zertifikate austauscht oder sowas.
Ich suche eine einfache und sichere Lösung, um eine SSH-Session zu starten und zu nutzen.

Was mir grade einfällt… Wenn ich einen NSTask mit SSH nicht beende im Programm, läuft die Session weiter, wenn das Programm geschlossen ist?


Ich hoffe es ist nachvollziehbar, wonach ich suche.


Jan
 
Nun.

Aber wie haben denn Leute vor mir das Problem gelöst? Ich meine es wird ja schon mal jemand geschafft haben ohne bekanntes Zertifikat erst das Zertifikat auszutauschen/erstellen und dann eine Session aufgebaut haben?

Im Grund ist der Austausch doch immer dieses:
Code:
macbook:Desktop Jan$ ssh Jan@test2
The authenticity of host 'test2 (192.168.2.106)' can't be established.
RSA key fingerprint is XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX
Are you sure you want to continue connecting (yes/no)?

Oder?
 
theoretisch könntest du es ja umgehen,in dem du den fingerprint des hosts irgendwo öffentlich zugänglich machen, es curlen>>.ssh/known_hosts und dann erst die verbindung aufbauen... oder anders gesagt: den fingerprint vor dem verbindungsaufbau den known_hosts hinzufügen... aber ob das so sinn macht... ^^