SSH
SSH
SSH steht für Secure Shell. Es ist ein Protokoll, um sichere Verbindungen zu entfernten Systemen aufzubauen.
SSH ersetzt unsichere ältere Werkzeuge wie Telnet, rsh, rcp und rlogin, bei denen Daten nicht ausreichend geschützt waren.
Was schützt SSH?
SSH schützt eine Verbindung durch:
- Vertraulichkeit
- Integrität
- Server-Authentifizierung
- Benutzer-Authentifizierung
- gesicherte Kanäle für Befehle und Dateiübertragung
Protokollschichten
Die Folien unterscheiden drei Teile:
| Schicht | Aufgabe |
|---|---|
| SSH Transport Layer | schützt Vertraulichkeit, Integrität und Server-Authentifizierung |
| SSH User Authentication | authentifiziert den Client bzw. Benutzer |
| SSH Connection Protocol | verwaltet gesicherte Kanäle über die Verbindung |
Host-Schlüssel und Fingerprint
Beim ersten Verbindungsaufbau zeigt SSH häufig einen Host-Fingerprint an.
Dieser Fingerprint gehört zum öffentlichen Schlüssel des Servers.
Die wichtige Frage ist:
Verbinde ich mich wirklich mit dem richtigen Server?
Wenn sich der Host-Fingerprint unerwartet ändert, kann das ein Hinweis auf einen Angriff oder auf einen echten Serverwechsel sein.
SSH mit Passwort
SSH kann mit Benutzername und Passwort verwendet werden.
Das ist besser als unverschlüsselte Protokolle, aber nicht ideal:
- Passwörter können schwach sein.
- Passwörter können wiederverwendet werden.
- Brute-Force-Angriffe sind möglich.
- Passwort-Login ist schwerer sauber zu automatisieren.
Public-Key-Authentication
Besser ist meist die Anmeldung mit einem Schlüsselpaar.
Dabei gibt es:
- privaten Schlüssel auf dem Client
- öffentlichen Schlüssel auf dem Server in
~/.ssh/authorized_keys
Der Server sendet eine Challenge. Der Client signiert sie mit dem privaten Schlüssel. Der Server prüft die Antwort mit dem öffentlichen Schlüssel.
Der private Schlüssel wird dabei nicht an den Server übertragen.
Schlüssel erzeugen
Ein typischer Befehl ist:
ssh-keygen -t ed25519
In den Folien wird auch RSA mit Bitlänge gezeigt:
ssh-keygen -t rsa -b 4096
Moderne Systeme bevorzugen häufig Ed25519, wenn es verfügbar ist.
ssh-agent
Der ssh-agent verwaltet private Schlüssel während einer Sitzung.
Nützliche Befehle:
ssh-add <datei>
ssh-add -l
Dadurch muss die Passphrase eines privaten Schlüssels nicht bei jeder Verbindung neu eingegeben werden.
Algorithmen anzeigen
SSH kann unterstützte Algorithmen anzeigen.
ssh -Q cipher
ssh -Q kex
Das ist hilfreich, um zu sehen, welche Verschlüsselungs- und Schlüsselaustauschverfahren das System unterstützt.
Sicherheitsregeln
Für SSH gelten praktische Grundregeln:
- private Schlüssel niemals weitergeben
- private Schlüssel mit Passphrase schützen
- Host-Fingerprints ernst nehmen
- Passwort-Login nach Möglichkeit deaktivieren
- nur moderne Algorithmen erlauben
- alte Protokollversionen vermeiden
- unnötige Accounts entfernen
Merksatz
SSH ist nicht nur ein verschlüsseltes Terminal. Es ist ein ganzes Sicherheitsprotokoll mit Schlüsselprüfung, Authentifizierung und geschützten Kanälen.
Zuletzt aktualisiert: 6. Juni 2026