ubuntuusers.de

Python und SSH

Status: Gelöst | Ubuntu-Version: Ubuntu 11.04 (Natty Narwhal)
Antworten |

Developer92 Team-Icon

Avatar von Developer92

Anmeldungsdatum:
31. Dezember 2008

Beiträge: 4101

Hallo, es geht um folgendes Problem:

Ich würde mich gerne via SSH mit meinem Server verbinden. Natürlich über Python ☺

Und später auch Dateien über diese Verbindung austauschen. Aber dazu später mal mehr...

Jedenfalls, ich habe mehrere Skripte im Internet gefunden, welche alle genau das hier darstellen:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
import socket
import libssh2

sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock.connect(('exmaple.com', 22))
session = libssh2.Session()
session.startup(sock)
session.userauth_password('username', 'password')

channel = session.channel()
channel.execute('ls -l')

print channel.read(1024)

Leider bringt Python bei "channel = session.channel()" immer diesen Fehler:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: 'Session' object has no attribute 'channel'

Natürlich ist klar, dass "channel" nicht verfügbar ist, weshalb das ganze nicht funktionieren kann. Die Frage ist nur wieso?

Weiß dafür jemand ne Lösung?

Oder brauch ich noch irgendein anderes Paket? Hab nur python-libssh2 installiert, was normalerweise ausreichen sollte.

mfg und Danke schonmal

busfahrer

Avatar von busfahrer

Anmeldungsdatum:
9. April 2007

Beiträge: 3052

Hallo

wie wäre es denn mit paramiko, ist in den Paketquellen (python-paramiko). Hier gibts auch noch ein paar Beispiele → http://segfault.in/2010/03/paramiko-ssh-and-sftp-with-python/

Gruß....busfahrer

dAnjou

Avatar von dAnjou

Anmeldungsdatum:
8. Oktober 2007

Beiträge: 872

Wohnort: Berlin

busfahrer schrieb:

wie wäre es denn mit paramiko, [...]

Und das ganze nochmal "verbequemisiert" 😬: Fabric (benutzt nämlich paramiko und ist ebenfalls in den Quellen). Das habe ich vor, demnächst zu benutzen. Ist zuerst ein wenig verwirrend, aber nach n bisl Doku lesen ist alles klar.

Developer92 Team-Icon

(Themenstarter)
Avatar von Developer92

Anmeldungsdatum:
31. Dezember 2008

Beiträge: 4101

Es ist ja schön, dass ihr mir hier 2 andere Möglichkeiten präsentiert, um SSH in Python verwenden zu können.

Aber eine Frage: Gibt es irgendwelche Vorteile/Nachteile der insgesamt 3 Möglichkeiten?

Hatte auf die schnelle nur python-libssh2 gefunden inklusive des eben nicht funktionierenden Beispiels.

Paramiko wäre recht interessant, weil es eben sftp unterstüzt (Da, wie dAnjou gesagt hatte, Fabric darauf basiert, wird dieses vermutlich ebenfalls sftp können).

mfg

Developer92 Team-Icon

(Themenstarter)
Avatar von Developer92

Anmeldungsdatum:
31. Dezember 2008

Beiträge: 4101

Okay, paramiko tut jetzt was es soll. Danke nochmal ☺

mfg

svenXY

Avatar von svenXY

Anmeldungsdatum:
22. September 2008

Beiträge: 542

Wohnort: Heidelberg

busfahrer schrieb:

wie wäre es denn mit paramiko, ist in den Paketquellen (python-paramiko). Hier gibts auch noch ein paar Beispiele → http://segfault.in/2010/03/paramiko-ssh-and-sftp-with-python/

paramiko (und auch fabric) nehme ich auch und ergänze es noch mit paraproxy, denn dann benutzen paramiko/fabric auch noch die proxycommands aus meiner ~/.ssh/config. Sehr einfach, sehr geil - und - hier im professionellen Umfeld mit ssh-Jumpgates und getrennten Netzbereichen - sehr essentiell!

Developer92 Team-Icon

(Themenstarter)
Avatar von Developer92

Anmeldungsdatum:
31. Dezember 2008

Beiträge: 4101

svenXY schrieb:

paramiko (und auch fabric) nehme ich auch und ergänze es noch mit paraproxy, denn dann benutzen paramiko/fabric auch noch die proxycommands aus meiner ~/.ssh/config. Sehr einfach, sehr geil - und - hier im professionellen Umfeld mit ssh-Jumpgates und getrennten Netzbereichen - sehr essentiell!

Cool, das erleichtert die Sache nochmals. Danke 👍

mfg

Antworten |