SSH
Secure Shell – Sicherer Remote-Zugriff
SSH (Secure Shell) ermöglicht verschlüsselten Remote-Zugriff auf Server. Es ersetzt das unsichere Telnet und ist das Standardprotokoll für Server-Administration, Dateiübertragung und sichere Tunnel. Authentifizierung per Passwort oder Public-Key.
Entstehung und Beteiligte
SSH wurde 1995 vom finnischen Forscher Tatu Ylönen an der Technischen Universität Helsinki entwickelt. Anlass war ein Passwort-Sniffing-Angriff im Universitätsnetz. Ylönen veröffentlichte eine freie Implementierung und gründete später SSH Communications Security.
Welches Problem sollte gelöst werden?
Telnet, rlogin und rsh übertrugen Sitzungen oder Vertrauensinformationen ungeschützt. Administratoren benötigten vertrauliche Fernanmeldung, Serverauthentifizierung und sichere Dateiübertragung über unsichere Netze.
Technische Hürden und Lösungen
SSH musste Hostschlüssel, Benutzerauthentifizierung, Verschlüsselung und Integrität in einem Protokoll verbinden. SSH-1 zeigte später Designschwächen; SSH-2 wurde neu standardisiert. Sichere Nutzung verlangt geprüfte Hostschlüssel und geschützte private Schlüssel.
Standardisierung und Einordnung
Internetprotokolle werden überwiegend in offenen RFC-Dokumenten beschrieben. Ein RFC kann ein historischer Vorschlag, ein aktueller Standard oder inzwischen überholt sein. Implementierungen müssen nicht nur das Papier befolgen, sondern mit fehlerhaften Gegenstellen, Paketverlust, Zeitüberschreitungen, Sicherheitsangriffen und jahrzehntealten Erweiterungen umgehen. Interoperabilität entsteht dadurch, dass unabhängige Hersteller dieselben Zustandsautomaten, Nachrichtenformate und Fehlerfälle testen.
Technik im praktischen Betrieb
Für den produktiven Einsatz zählt die konkrete Protokollversion. Alte und neue Varianten können denselben Port verwenden, besitzen aber völlig unterschiedliche Sicherheits- und Funktionsmerkmale. Administratoren sollten daher Aushandlung, Zertifikate, Timeouts, maximale Nachrichtengrößen und Fehlercodes sichtbar machen. Proxys, NAT und Firewalls verändern häufig den Datenpfad. Gute Tests erfolgen aus derselben Netzposition wie die betroffene Anwendung und prüfen nicht nur einen offenen Port, sondern einen vollständigen gültigen Vorgang.
Warum das Thema heute noch relevant ist
Die ursprüngliche Entstehungszeit erklärt viele heutige Sicherheitslücken: Frühe Internetgemeinschaften waren klein und Vertrauen wurde vorausgesetzt. Authentifizierung, Verschlüsselung und Missbrauchsschutz kamen oft erst später als Erweiterung hinzu. Moderne Implementierungen müssen deshalb sichere Voreinstellungen verwenden, alte Varianten abschalten und dennoch mit Gegenstellen kommunizieren, die einen älteren Stand besitzen. Versionsnummer, Aushandlung und tatsächlich aktive Option sind aussagekräftiger als der bloße Protokollname.
Daten und Meilensteine
- 1995 veröffentlicht Tatu Ylönen die erste SSH-Version.
- SSH-2 ersetzt das veraltete SSH-1-Protokoll.
- OpenSSH entstand 1999 aus dem OpenBSD-Projekt.
- Portweiterleitung kann lokale, entfernte und dynamische Tunnel erzeugen.
Was ist SSH?
SSH (Secure Shell, RFC 4251) ist ein Netzwerkprotokoll für sicheren verschlüsselten Fernzugriff auf Computer. Es ersetzt das unsichere Telnet (Klartext) und rsh. SSH verschlüsselt die gesamte Kommunikation – Befehle, Ausgaben, Dateiübertragungen – und authentifiziert sowohl Client als auch Server.
SSH wurde 1995 von Tatu Ylönen entwickelt und ist heute das Standard-Werkzeug für Server-Administration. Port 22 ist der Standardport, der oft aus Sicherheitsgründen auf einen anderen Port verlegt wird.
Authentifizierung
SSH unterstützt zwei Hauptauthentifizierungsmethoden:
- Passwort-Authentifizierung: Einfach, aber unsicher bei schwachen Passwörtern und anfällig für Brute-Force. Sollte deaktiviert werden.
- Public-Key-Authentifizierung: Sicherer Standard. Client besitzt privaten Schlüssel (~/.ssh/id_ed25519), Server kennt den öffentlichen Schlüssel (~/.ssh/authorized_keys). Kein Passwort, aber man benötigt den privaten Schlüssel. Empfohlene Algorithmen: Ed25519, ECDSA. RSA mit mindestens 4096 Bit.
- Zertifikat-Authentifizierung: Skaliert für viele Server in großen Umgebungen (SSH CAs).
SSH-Funktionen und Tunneling
SSH kann viel mehr als nur Remote-Shell: Port Forwarding (Weiterleitungen verschlüsselt durch SSH-Tunnel), X11 Forwarding (grafische Anwendungen remote), SOCKS-Proxy (SSH als VPN-Ersatz), Multiplexing (mehrere Sitzungen über eine Verbindung).
Sicherheitsempfehlungen: Root-Login deaktivieren (PermitRootLogin no), Password-Auth deaktivieren, nur notwendige Nutzer erlauben (AllowUsers), Fail2Ban für Brute-Force-Schutz, Port auf non-standard ändern.