Hallo! Am Samstag, 20. Januar 2007 16:02 schrieb Manfred Rebentisch:
Hallo, ich versuche, mit einem als dämon laufenden Prozess einen ssh-Aufruf zu machen. Dazu starte ich einen Prozess mit fork() und im child dann execvp.
Ich verwende dazu ein eigenes Modul, das fork() und execvp() kapselt (und alles, was damit zu tun hat, einschließlich pipes), das ich vielfach einsetze und das gut funktioniert.
Allein mit ssh will es nicht. Ich verwende einen Public-Key und natürlich funktioniert der ssh-Aufruf aus der Shell einwandfrei. Die gleichen Parameter setze ich für execvp ein. Du wirst wohl eher einen "private key" auf ssh-Seite verwenden... Kommt der aus einem ssh-agent oder muß der aufgerufene ssh client eine "identity" selber öffnen? (Wenn du einen Agenten verwendest, muß der natürlich auch die gleich Umgebung verwenden wie du in deiner shell. (Siehe Antwort von Andre...)
Läuft da irgendwas "chroot"-ed? (Client oder sshd?) Eine gute Sache bei ssh-Problemen sind auch immer die sshd-logs, wenn mensch den loglevel für den daemon enorm hoch einstellt... Da steht der gesamte Versuch des Schlüsselaustausch dann drin! HTH. Salut, Jörg -- gpg/pgp key # 0xd7fa4512 fingerprint 4e89 6967 9cb2 f548 a806 7e8b fcf4 2053 d7fa 4512