ssh-keygen erzeugt und verwaltet die Schlüsselpaare für die SSH-Key-Authentifizierung. Das Programm ist Teil von OpenSSH und auf jedem Linux-, macOS- und Windows-System (OpenSSH-Client) vorhanden. Ein Schlüsselpaar besteht aus einem privaten Schlüssel, der auf dem eigenen Rechner bleibt, und einem öffentlichen Schlüssel, der auf dem Zielserver hinterlegt wird.

Schlüsselpaar erzeugen

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

Die Option -t wählt den Algorithmus. Empfohlen ist Ed25519 — schnell, kleine Schlüssel, moderne Kryptografie. Klassisch wird ssh-keygen -t rsa -b 4096 verwendet, wenn ältere Server kein Ed25519 können. -C setzt einen Kommentar, der später anzeigt, wem der Schlüssel gehört. Beim Erzeugen fragt ssh-keygen nach einem Speicherort (Standard: ~/.ssh/id_ed25519 und id_ed25519.pub) und optional nach einer Passphrase, die den privaten Schlüssel zusätzlich schützt.

Weitere wichtige Optionen

  • ssh-keygen -t ed25519 -f ~/.ssh/mein-schluessel — Dateinamen selbst bestimmen
  • ssh-keygen -p — Passphrase eines vorhandenen Schlüssels ändern oder entfernen
  • ssh-keygen -l -f ~/.ssh/id_ed25519.pub — Fingerprint (Prüfsumme) eines Schlüssels anzeigen
  • ssh-keygen -y -f ~/.ssh/id_ed25519 — öffentlichen Schlüssel aus dem privaten ableiten (z.B. nach Verlust der .pub-Datei)
  • ssh-keygen -R server.example.com — bekannten Host-Schlüssel aus known_hosts entfernen (z.B. nach Neuinstallation des Servers)

Praxis-Tipps

  • Den privaten Schlüssel niemals weitergeben — er gehört nur auf den eigenen Rechner.
  • Nach der Erzeugung den öffentlichen Schlüssel mit ssh-copy-id auf dem Server hinterlegen.
  • Berechtigungen prüfen: ~/.ssh und private Schlüssel nur für den eigenen Benutzer lesbar (chmod 700 / 600).
  • Die Passphrase einmal in den SSH-Agent laden, dann ist sie nicht bei jeder Verbindung nötig.

Verwandte Grundlagen: SSH, ssh-copy-id und ssh-config. Den Zugriff auf mehrere Server erleichtert die ssh-, scp- und rsync-Befehle-Referenz.