Paramiko – SSH-Client für Python

Online Python-Trainer für Anfänger

Lernen Sie Python einfach ohne theoretische Überlastung. Lösen Sie praktische Aufgaben mit automatischer Überprüfung und schreiben Sie Code direkt im Browser.

Kurs starten

Einleitung

In der modernen DevOps- und SecOps-Praxis ist der programmatische Zugriff auf entfernte Server unverzichtbar. Eine der zuverlässigsten und leistungsstärksten Methoden zur Interaktion mit entfernten Hosts über Python ist die Bibliothek Paramiko. Sie implementiert das SSH2-Protokoll und ermöglicht es, sich mit Servern zu verbinden, Befehle auszuführen, Dateien zu übertragen und automatisierte Systeme zur Infrastrukturverwaltung aufzubauen.

In diesem Artikel betrachten wir alle Aspekte der Arbeit mit Paramiko: von den Grundlagen bis hin zu konkreten Implementierungen. Wir gehen detailliert auf Klassen, Methoden, Funktionen und praktische Anwendungsfälle in realen Projekten ein.

Was ist Paramiko?

Paramiko ist eine Python-Implementierung des SSH2-Protokolls, entwickelt von Robby Walker. Der Name setzt sich aus „parallel" und „miko" (japanisch für „Schreinjungfer") zusammen. Die Hauptaufgabe der Bibliothek ist die Bereitstellung eines sicheren Datenkanals zwischen Hosts mit Authentifizierung über Passwörter oder Schlüssel.

Die Bibliothek ist in reinem Python geschrieben, was sie plattformunabhängig und leicht in jedes Projekt integrierbar macht. Paramiko wird häufig in Tools wie Ansible, Fabric und anderen Automatisierungssystemen eingesetzt.

Wichtige Funktionen und Vorteile

Vollständige SSH2-Protokollimplementierung

Paramiko unterstützt alle wesentlichen SSH2-Funktionen, darunter:

  • Authentifizierung per Passwort und Schlüssel
  • Ausführung von Befehlen auf entfernten Servern
  • Dateiübertragung per SFTP
  • Erstellung sicherer Tunnel

Unterstützung moderner Verschlüsselungsalgorithmen

  • RSA-, DSS-, ECDSA- und Ed25519-Schlüssel
  • AES-, 3DES- und Blowfish-Verschlüsselung
  • SHA-1-, SHA-256- und SHA-512-Hashing

Zusätzliche Funktionen

  • Kompatibel mit Python 3.6+
  • Unterstützung von Jump-Servern (Bastion Hosts)
  • Möglichkeit zur Erstellung eigener SSH-Server
  • Integration mit SSH-Agents
  • Hohe Zuverlässigkeit und Sicherheit

Installation und Einrichtung

Standardinstallation

pip install paramiko

Installation mit zusätzlichen Abhängigkeiten

pip install paramiko[gssapi]  # Für Kerberos/GSSAPI
pip install paramiko[invoke]  # Für Integration mit Invoke

Installation überprüfen

import paramiko
print(paramiko.__version__)

Architektur der Bibliothek

Paramiko basiert auf einer modularen Architektur mit klarer Aufgabentrennung zwischen den Komponenten:

Hauptkomponenten

  • Transport: Niedrige Transportschicht für SSH
  • Channel: Abstraktion für Datenkanäle
  • SSHClient: Hochwertige Schnittstelle für SSH-Verbindungen
  • SFTPClient: Client für die Dateiarbeit per SFTP
  • ServerInterface: Schnittstelle zur Erstellung von SSH-Servern

Wichtige Klassen und ihre Methoden

SSHClient – Die Hauptschnittstelle

SSHClient ist die zentrale Klasse für die Arbeit mit SSH-Verbindungen. Sie bietet eine benutzerfreundliche Schnittstelle zum Verbinden mit Servern und Ausführen von Befehlen.

Wichtige Methoden von SSHClient

Methode Beschreibung Parameter
connect() Verbindung zum Server herstellen hostname, port, username, password, pkey, timeout
exec_command() Befehl ausführen command, bufsize, timeout, get_pty
invoke_shell() Interaktive Shell erstellen term, width, height, width_pixels, height_pixels
open_sftp() SFTP-Sitzung starten

Empfehlungen