Ein SSH-Key ist ein kryptografisches Schlüsselpaar, mit dem sich ein Client gegenüber einem SSH-Server authentifiziert — ohne Passwort. Ein SSH-Key besteht aus einem privaten Schlüssel (bleibt auf dem eigenen Rechner, niemals weitergeben) und einem öffentlichen Schlüssel (wird auf dem Server in ~/.ssh/authorized_keys hinterlegt). Der Server prüft bei der Anmeldung, ob der Client den passenden privaten Schlüssel besitzt — das eigentliche Geheimnis wird dabei nie übertragen.

Wie funktioniert ein SSH-Key?

Beim Verbindungsaufbau sendet der Client einen Beweis (Signatur), die nur mit dem privaten Schlüssel erzeugt werden kann. Der Server verifiziert sie mit dem öffentlichen Schlüssel. Dieser Public-Key-Authentifizierungs-Mechanismus ist deutlich sicherer als Passwörter, weil keine Geheimnisse über das Netz wandern und keine schwachen Passwörter erraten werden können. Ein Angreifer, der die Verbindung abhört, kann den privaten Schlüssel nicht ableiten.

Erzeugen und einsetzen

ssh-keygen -t ed25519 -C "mein-rechner"

Empfohlen wird heute der Algorithmus Ed25519 (schnell, kleine Schlüssel, modern); klassisch ist RSA mit 3072 oder 4096 Bit. Der private Schlüssel wird durch eine Passphrase geschützt — wer die Passphrase vergisst, muss einen neuen Schlüssel erzeugen. Mit ssh-copy-id benutzer@server wird der öffentliche Schlüssel bequem auf dem Server hinterlegt. Die Berechtigungen sind wichtig: ~/.ssh und die Schlüsseldateien dürfen nur für den eigenen Benutzer lesbar sein.

SSH-Keys und der SSH-Agent

Wer den privaten Schlüssel nicht bei jeder Verbindung neu eingeben möchte, legt ihn einmal in den SSH-Agent — der entsperrt ihn nach Passphrase-Eingabe und hält ihn im Speicher. Auch SSH-Tunnel und Automatisierungen wie rsync-Backups profitieren von schlüsselbasierter Anmeldung. Verwandte Grundlagen: SSH und ssh, scp und rsync: Remote-Verbindungen und Datei-Transfer.