Seite 1 von 1

SSH mit paramiko

Verfasst: Sonntag 15. September 2019, 15:51
von Phobit
Hallo,
wenn ich mit dem Modul "paramiko" eine SSH Verbindung zu meinem Server herstelle, und mehrere befehle hintereinander ausführen möchte, stoße ich auf das Problem, dass paramiko scheinbar nach jedem .exec_command() die Sitzung resettet. Also, hier ein Beispiel:

Code: Alles auswählen

windows_ssh = paramiko.SSHClient()
test_ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy)
test_ssh.connect(hostname="TEST", username="server",
                    password="passwort")
stdin, stdout, stderr = test_ssh.exec_command("pwd")
for line in stdout:
    print(line)  # ausgabe: "/home/server"

stdin, stdout, stderr = test_ssh.exec_command("cd /mnt/ && pwd") 
for line in stdout:
    print(line)  # ausgabe: "/mnt"

stdin, stdout, stderr = test_ssh.exec_command("pwd") 
for line in stdout:
    print(line)  # ausgabe: "/home/server"
Also, jedes mal wenn ich einen Befehl in einer neuen Zeile ausführe, springt paramiko wieder zum Ausgangsort der Sitzung zurück.
Gibt es da irgendeine Option, die ich vllt in der doc überlese, die man aktivieren kann damit die Sitzung erhalten bleibt? Also mir ist klar dass ich "serverseitig" handeln könnte über z.B. "screen" aber mich würde interessieren obs eine Lösung über paramiko gäbe...?

Re: SSH mit paramiko

Verfasst: Sonntag 15. September 2019, 17:28
von __blackjack__
@Phobit: Die Dokumentation sagt ja das ein neuer `Channel` geöffnet wird. Jedes mal. Wenn Du nur *einen* öffnen möchtest, dann müsstest Du `invoke_shell()` verwenden.

Re: SSH mit paramiko

Verfasst: Sonntag 15. September 2019, 18:47
von Phobit
Ok danke werd ich mir anschaun