SSH mit paramiko

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Phobit
User
Beiträge: 185
Registriert: Freitag 4. Mai 2018, 18:13

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...?
Mir egal, ob der Code schön ist oder nicht.
Hauptsache er funkt!
Benutzeravatar
__blackjack__
User
Beiträge: 13077
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@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.
„All religions are the same: religion is basically guilt, with different holidays.” — Cathy Ladman
Phobit
User
Beiträge: 185
Registriert: Freitag 4. Mai 2018, 18:13

Ok danke werd ich mir anschaun
Mir egal, ob der Code schön ist oder nicht.
Hauptsache er funkt!
Antworten