ssh-keygen — SSH-Schlüssel erzeugen und verwalten
Praxis-Guide zu ssh-keygen — Ed25519- und RSA-Schlüsselpaare erstellen, Passphrasen verwalten, known_hosts pflegen und SSH-Zertifikate ausstellen.
ssh-keygen ist das Standardwerkzeug von OpenSSH zum Erzeugen und Verwalten von SSH-Schlüsselpaaren. Mit einem einzigen Befehl erzeugst du ein modernes Ed25519- oder klassisches RSA-Schlüsselpaar, schützt es mit einer Passphrase und hinterlegst den öffentlichen Schlüssel auf dem Server – ab dann meldest du dich passwortlos an. Daneben verwaltest du known_hosts, prüfst Fingerabdrücke und kannst mit SSH-Zertifikaten eine skalierbare CA-Infrastruktur aufbauen.
Schlüssel erzeugen
ssh-keygen -t ed25519 — Erzeugt ein Ed25519-Schlüsselpaar (modern, empfohlen).
ssh-keygen -t ed25519 -C 'user@example.com'ssh-keygen -t rsa -b 4096 — Erzeugt ein RSA-Schlüsselpaar mit 4096 Bit.
ssh-keygen -t rsa -b 4096 -C 'user@example.com'ssh-keygen -t ed25519 -f <file> — Erzeugt einen Schlüssel und speichert ihn unter einem eigenen Dateinamen.
ssh-keygen -t ed25519 -f ~/.ssh/deploy_keyssh-keygen -t ed25519 -N '' — Erzeugt einen Schlüssel ohne Passphrase (für Automatisierung).
ssh-keygen -t ed25519 -N '' -f ~/.ssh/ci_keyssh-keygen -t ecdsa -b 521 — Erzeugt einen ECDSA-Schlüssel mit 521-Bit-Kurve.
ssh-keygen -t ecdsa -b 521Schlüsselinfo & Fingerabdrücke
ssh-keygen -l -f <key> — Zeigt den Fingerabdruck eines Schlüssels.
ssh-keygen -l -f ~/.ssh/id_ed25519.pubssh-keygen -l -E md5 -f <key> — Zeigt den Fingerabdruck im MD5-Format. — MD5 gilt als veraltet, nur für Legacy-Kompatibilität.
ssh-keygen -l -E md5 -f ~/.ssh/id_ed25519.pubssh-keygen -lv -f <key> — Zeigt den Fingerabdruck mit visuellem ASCII-Bild (Randomart).
ssh-keygen -lv -f ~/.ssh/id_ed25519.pubssh-keygen -y -f <private-key> — Extrahiert den öffentlichen Schlüssel aus einem privaten Schlüssel.
ssh-keygen -y -f ~/.ssh/id_ed25519 > ~/.ssh/id_ed25519.pubPassphrase verwalten
ssh-keygen -p -f <key> — Ändert die Passphrase eines privaten Schlüssels.
ssh-keygen -p -f ~/.ssh/id_ed25519ssh-keygen -p -f <key> -N '' -P '<old>' — Entfernt die Passphrase eines Schlüssels. — Passphrase erscheint im Klartext in der Shell-History; nur in kontrollierten Umgebungen.
ssh-keygen -p -f ~/.ssh/id_ed25519 -N '' -P 'oldpassphrase'known_hosts verwalten
ssh-keygen -R <host> — Entfernt einen Host aus known_hosts (nach Schlüsselwechsel).
ssh-keygen -R server.example.comssh-keygen -F <host> — Sucht nach einem Host in known_hosts.
ssh-keygen -F github.comssh-keygen -H -f ~/.ssh/known_hosts — Hasht alle Hostnamen in known_hosts (für Datenschutz).
ssh-keygen -H -f ~/.ssh/known_hostsssh-keyscan <host> — Ruft den öffentlichen Schlüssel eines entfernten Hosts ab.
ssh-keyscan github.com >> ~/.ssh/known_hostsssh-keyscan -t ed25519 <host> — Ruft nur einen bestimmten Schlüsseltyp ab.
ssh-keyscan -t ed25519 github.comFormat konvertieren
ssh-keygen -e -f <key> -m RFC4716 — Exportiert den öffentlichen Schlüssel im RFC-4716-Format (SSH2).
ssh-keygen -e -f ~/.ssh/id_ed25519.pub -m RFC4716ssh-keygen -e -f <key> -m PEM — Exportiert den öffentlichen Schlüssel im PEM-Format.
ssh-keygen -e -f ~/.ssh/id_rsa.pub -m PEMssh-keygen -i -f <key> -m RFC4716 — Importiert einen Schlüssel aus dem RFC-4716-Format ins OpenSSH-Format.
ssh-keygen -i -f key.pub -m RFC4716Zertifikate & Signaturen
ssh-keygen -s <ca-key> -I <id> -n <principals> <key>.pub — Signiert einen Benutzer-Schlüssel mit einem CA-Schlüssel (SSH-Zertifikate).
ssh-keygen -s ca_key -I user_john -n john,admin john.pubssh-keygen -s <ca-key> -I <id> -h <host-key>.pub — Signiert einen Host-Schlüssel mit einem CA-Schlüssel.
ssh-keygen -s ca_key -I server.example.com -h ssh_host_ed25519_key.pubssh-keygen -L -f <cert> — Zeigt Details eines SSH-Zertifikats.
ssh-keygen -L -f john-cert.pubssh-keygen -Y sign -f <key> -n <namespace> <file> — Signiert eine Datei mit einem SSH-Schlüssel.
ssh-keygen -Y sign -f ~/.ssh/id_ed25519 -n file release.tar.gzssh-keygen -Y verify -f <allowed-signers> -I <id> -n <namespace> -s <sig> < <file> — Verifiziert eine Datei-Signatur.
ssh-keygen -Y verify -f allowed_signers -I user@example.com -n file -s release.tar.gz.sig < release.tar.gz Fazit
Mit ssh-keygen hast du alles, was du für sichere passwortlose Authentifizierung brauchst – von der Schlüsselerzeugung bis zur Zertifikatsvergabe. Greife im Alltag zu Ed25519: kompakt, schnell und kryptografisch zeitgemäß. Schütze private Schlüssel immer mit einer Passphrase und nutze einen SSH-Agenten, um sie nur einmal pro Session eingeben zu müssen.
Weiterführende Links
- OpenSSH – Wikipedia – Hintergrund und Geschichte
- Secure Shell – Wikipedia – Protokoll und Architektur
- ssh-keygen(1) – Manpage – alle Optionen im Überblick (englisch)