SSH-Verbindung per plink aufrecht erhalten...

Sockets, TCP/IP, (XML-)RPC und ähnliche Themen gehören in dieses Forum
spooky0815
User
Beiträge: 23
Registriert: Montag 27. Februar 2006, 19:24

SSH-Verbindung per plink aufrecht erhalten...

Beitragvon spooky0815 » Montag 10. Juli 2006, 08:36

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
Benutzeravatar
Gromit
User
Beiträge: 51
Registriert: Montag 8. Mai 2006, 19:07

Beitragvon Gromit » Dienstag 11. Juli 2006, 08:42

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
spooky0815
User
Beiträge: 23
Registriert: Montag 27. Februar 2006, 19:24

Beitragvon spooky0815 » Dienstag 11. Juli 2006, 09:03

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
Benutzeravatar
Rebecca
User
Beiträge: 1662
Registriert: Freitag 3. Februar 2006, 12:28
Wohnort: DN, Heimat: HB
Kontaktdaten:

Beitragvon Rebecca » Dienstag 11. Juli 2006, 10:06

Schau dir mal diesen Post von mir an: http://www.python-forum.de/topic-5902.html#38902

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder