Was ist SSH?
Beschreibung der Secure Shell (SSH) für die Remote-Verwaltung von Servern.
SSH („Secure Shell") ist ein Netzwerkprotokoll der Anwendungsschicht, das die Fernverwaltung eines Betriebssystems sowie die sichere Übertragung von Dateien ermöglicht. Es verschlüsselt den gesamten Datenverkehr — einschließlich Passwörter — und ist damit deutlich sicherer als ältere Protokolle wie Telnet und rlogin. SSH unterstützt eine Vielzahl von Verschlüsselungsalgorithmen und ist für nahezu jedes gängige Betriebssystem verfügbar.
SSH kann andere Netzwerkprotokolle über einen unsicheren Kanal tunneln und ermöglicht so den Remote-Zugriff auf die Kommandozeile eines Rechners sowie die verschlüsselte Übertragung von Audio- oder Videostreams. Dies wird durch Port Forwarding (TCP-Tunneling) realisiert. SSH unterstützt darüber hinaus die Datenkomprimierung vor der Verschlüsselung, was besonders beim Betrieb von X-Window-System-Clients über langsamere Verbindungen hilfreich ist.
Geschichte und Entwicklung von SSH
Die erste Version des Protokolls, SSH-1, wurde 1995 vom finnischen Forscher Tatu Ylönen an der Technischen Universität Helsinki entwickelt. SSH-1 sollte eine bessere Vertraulichkeit als rlogin, Telnet und rsh bieten. 1996 wurde eine sicherere, zu SSH-1 inkompatible Version entwickelt — SSH-2. Das Protokoll verbreitete sich schnell und hatte bis zum Jahr 2000 bereits etwa zwei Millionen Nutzer.
2006 wurde das SSH-Protokoll von der IETF als Internetstandard verabschiedet. Dennoch erfordern einige Länder bis heute spezielle Genehmigungen für den Einsatz bestimmter starker Verschlüsselungsverfahren, darunter einige, die in SSH zum Einsatz kommen.
Moderne Implementierungen (einschließlich OpenSSH seit ~2017) haben die Unterstützung für SSH-1 vollständig eingestellt. Nahezu die gesamte heutige Nutzung basiert auf SSH-2.
SSH-Implementierungen
Es gibt zwei Hauptkategorien von SSH-Implementierungen: kommerzielle proprietäre und freie Open-Source-Lösungen. Die am weitesten verbreitete Open-Source-Implementierung ist OpenSSH. Mitte der 2000er-Jahre lief sie bereits auf rund 80 % der mit dem Internet verbundenen Rechner; heute ist sie weltweit die dominante SSH-Implementierung (standardmäßig in fast allen Linux-Distributionen und macOS enthalten sowie für Windows verfügbar). Die ursprüngliche kommerzielle Implementierung wird von SSH Communications Security (früher SSH Inc.) unter dem Produktnamen Tectia SSH (vormals SSH Tectia / SSH Secure Shell) entwickelt. Es handelt sich um eine kostenpflichtige Enterprise-Lösung, die häufig in regulierten Branchen (Banken, Behörden, kritische Infrastruktur) gewählt wird — wegen Funktionen wie FIPS-140-2/3-Zertifizierung, quantensicherer Kryptografie, Zero-Trust-Editionen, zentralisiertem Management und kommerziellem 24/7-Support. Die Lösung wird Stand 2025–2026 aktiv weiterentwickelt.
SSH-Sicherheit
SSH-2 ist resistent gegen Man-in-the-Middle-Angriffe (MITM) — anders als Telnet, bei dem das Mitlesen des Datenverkehrs alles offenbart. Bei korrekter Konfiguration schützt es zudem vor Session-Hijacking und DNS-Spoofing-Angriffen.
Aktuelle Empfehlungen (2025–2026):
- Ed25519- oder ECDSA-Schlüssel statt altem RSA-SHA1 verwenden.
- Für RSA-Schlüssel rsa-sha2-256/512 bevorzugen.
- Schwache / veraltete Algorithmen deaktivieren (z. B. SHA-1, DSA, alte Key-Exchange-Methoden).
- Post-Quanten-Hybrid-Schlüsselaustausch aktivieren, wo verfügbar.
Beispiele für die SSH-Nutzung
- Verbindung zu einem lokalen SSH-Server auf einem nicht standardmäßigen Port:
$ ssh -p 30000 user@127.0.0.1 - Erzeugung eines starken RSA-Schlüsselpaars mit 4096 Bit:
$ puttygen -t rsa -b 4096 -o sample
Ausführlichere Anleitungen zur Verbindung über SSH:
- Verbindung zu einem VPS oder dedizierten Server via SSH unter Windows
- Verbindung zu einem VPS oder dedizierten Server via SSH unter macOS
- SSH-Schlüsselauthentifizierung auf dem Server einrichten
Einige Clients wie PuTTY bieten eine grafische Benutzeroberfläche.
Für die SSH-Nutzung in Python sind die Bibliotheken python-paramiko und python-twisted-conch weit verbreitet.
Sicherheitsempfehlungen
- Remote-Root-Login deaktivieren (PermitRootLogin no).
- Leere Passwörter verbieten.
- Den SSH-Serverport vom Standardport 22 auf einen nicht standardmäßigen Port ändern.
- Starke, moderne Schlüsseltypen verwenden (vorzugsweise Ed25519 oder mindestens 4096-Bit-RSA mit SHA-2).
- Für sicherheitskritische Umgebungen zertifikatsbasierte Authentifizierung oder Multi-Faktor-Authentifizierung in Betracht ziehen.
Referenzen
Standards
Terminal-Zugriffssoftware
- OpenSSH — die führende freie SSH-Suite
- PuTTY — beliebter plattformübergreifender SSH-Client mit GUI
- Tectia SSH — Enterprise-/kommerzielle SSH-Lösung