
SSH mit Python und Paramiko (PyCrypto) – ausführliches Tutorial
Als Systemadminstrator von Linux-Systemen benötigt man das ein oder andere mal Zugriff auf die Systeme per Secure Shell (SSH). Da sich Python Als plattformunabhängige Scriptsprache fast immer.
Python ist sehr gut lesbar und damit oft auch pflegeleicht. Daher wird die Skriptsprache von vielen Administratoren geschätzt. Für die Fernwartung von Linux/Unix Servern wird häufig das SSH-Protokoll verwendet. Leider unterstützt Python per Default kein SSH. Diese Funktionionalität muss man selbst per Package nachrüsten. Es gibt diverse Python-Erweiterungen für SSH. Am ehesten bietet sich jedoch Paramiko an. Um mit Python SSH-Verbindungen zu öffnen benötigt man also das Paket Paramiko. Paramiko setzt wiederum pyCrypto vorraus. pyCrypto muss kompiliert werden oder vorkompiliert für das entsprechende System heruntergeladen und installiert werden.
Installation unter Windows
Wenn ihr Windows verwendet, dann solltet ihr hier weiterlesen. Der Linux-Teil ist weiter unten.
Voraussetzung für Paramiko:
Python muss auf Windows-System installiert sein. (zB. 2.7.* oder 3.*)
Normalerweise kann Paramiko über setuptools installiert werden. Falls ihr setuptools noch nicht installiert und eingerichtet habt, dann könnt ihr dies hier nachlesen. Falls ihr daran kein Interesse habt, dann muss Paramiko heruntergeladen sein http://pypi.python.org/pypi/paramiko
Außerdem benötigt Paramiko das Python-Package PyCrypto. Dieses müsst ihr euch ebenfalls installieren. Falls ihr dies nicht installiert habt erscheint folgende Fehlermeldung:
warning: GMP library not found; Not building Crypto.PublicKey._fastmath.
error: Setup script exited with error: Unable to find vcvarsall.bat
Am besten ihr ladet euch den Windows-Installer von PyCrypto herunter. Die Installation ist so am unkompliziertesten.
Installation von Paramiko
Falls ihr kein setuptools installiert und eingerichtet habt müsst ihr Paramiko von Hand installieren. Dazu ladet ihr euch das gepackte Verzeichnis von Paramiko herunter. Dieses entpackt ihr auf eurem Windows-PC. und navigiert mit der Windows Eingabeaufforderung in das entsprechende Verzeichnis. Anschließend führt ihr folgende Kommandos aus:
python.exe setup.py build python.exe setup.py
Im Idealfall sollte die Installation auf diese Weise funktionieren.
Installation unter Linux
Bei eingerichteten setuptools ist die Installation Kinderleicht. Ihr müsst lediglich folgendes Kommando ausführen. easy_install löst sofort die Abhängigkeit zu PyCrypto aus und installiert dieses ebenfalls.
easy_install paramiko
In der Regel ist die Installation hiermit abgeschlossen. Falls nicht, dann müsst ihr die Installation wieder manuell vornehmen. Die Schritte sehen dann genauso aus wie oben. Um PyCrypto in einem Debian (oder Ubuntu) zu installieren muss das Paket python-crypto installiert sein.
apt-get install python-crypto
Habt ihr Probleme bei der Installation von Paramiko oder PyCrypto gehabt? Dann schreibt mir. Ich will versuchen hier im Artikel noch alternative Lösungswege zu dokumentieren.
[…] Der private Schlüssel muss lokal gespeichert werden und anschließend bei der Putty-Session hinterlegt werden (Auch hier siehe Screenshot, markierter Bereich). Wenn das alles gemacht ist, dann muss der Schlüssel auf alle relevanten Server verteilt werden. Dies ist je nach Anzahl der Server allerdings mehr oder weniger anstrengend bzw. aufwendig. Ich habe mir dazu vor einiger Zeit ein kleines Python-Skript geschrieben. Dieses Skript verteilt meinen Public-Key auf mehrere Server. Vorrausetzung für dieses Skript ist das Python-Paket Paramiko. Wie man Paramiko installiert, habe ich kürzlich in einem anderen Artikel erklärt. […]
[…] man Paramiko installiert und einrichtet konntet ihr bereits in einem anderen Artikel nachlesen. Heute will ich einfache Anwendungsbeispiele […]