Seite 1 von 1

SSH-Verbindung per plink aufrecht erhalten...

Verfasst: Montag 10. Juli 2006, 08:36
von spooky0815
Hallo,

Ich will mittels Python-Script auf einen SSH Rechner zugreifen und dort mehrere Befehle ausführen. Hier im Forum habe ich folgende Möglichkeit entdeckt:

Code: Alles auswählen

input = os.popen3("plink.exe -pw pass -ssh user@host command")[1].read()
Dies öffnet die SSH-Verbindung, führt den Befehl aus und gibt die Ausgabe aus. ABER LEIDER schließt die Verbindung danach sofort wieder.

Ich möchte diese Verbindung aber als tunnel nutzen

Code: Alles auswählen

input = os.popen3("plink.exe -pw pass -batch -ssh user@host -L 1234:tunnel-rechner:4567")
wie bekomme ich Python dazu, die Verbindung bis zu einem .close() aufrecht zu erhalten. Bzw. wie kann ich weitere Befehle durch die Pipe an den entfernten Rechner senden??

Danke für Eure Hilfe,

Spooky

Verfasst: Dienstag 11. Juli 2006, 08:42
von Gromit
Hi Spooky,
leider unterstützt plink.exe nicht die Option -T wie die OpenSsh. Damit ist es möglich nur die Tunnels aufzubaune und kein Kommando auszuführen. Bei putty geht das auch und da plink.exe eine putty-Konfiguration lesen kann, wäre dies eine Möglichkeit. Du kannst natürlich als Kommando auch sleep 30 ausführen, dann hast du 30 Sekunden Zeit, die Tunnel aufzubauen. Sind die Tunnel erstmal da, beendet sich plink erst, wenn alle Tunnel und das Kommando beendet ist.

HTH,
Gerald

Verfasst: Dienstag 11. Juli 2006, 09:03
von spooky0815
sleep 30
Genau das hab nun auch gemacht :) ... allerdings als getrennten Thread, da sonst die Python-Anwendung blockiert :)

Ich habe aber noch eine kleine Frage zu der ganzen SSH Geschichte. Ist es mittels Python möglich, komplexe Ausgaben wie z.B. das Fenster vom Lynx-Browser anzeigen zu lassen?
Die Standardtext-ausgabe nützt mir da relativ wenig und beim Aufruf von Lynx steht im ErrorOut des popen3-Request: "Unable to write to Standard-Out"

:(

Bin für eure Tipps dankbar :)

VG

Spooky

Verfasst: Dienstag 11. Juli 2006, 10:06
von Rebecca
Schau dir mal diesen Post von mir an: http://www.python-forum.de/topic-5902.html#38902