← Zurück zur Übersicht
Protokolle

SSH

Secure Shell – Sicherer Remote-Zugriff

SSHSecure ShellRemoteTerminalSchlüsselPort 22

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.

SSH Clientssh user@host Private Key~/.ssh/id_ed25519SSH Serversshd Port 22 Authorized Keys~/.ssh/authorized_keys AES-256verschlüsselter KanalSSH Tunneling · X11 Forwarding · Port Forwarding · SFTP · SCP

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.