~/.ssh/known_hosts (kurz known_hosts) speichert die Host-Schlüssel aller SSH-Server, mit denen sich der Client bereits verbunden hat. Beim ersten Kontakt merkt sich OpenSSH den Fingerabdruck; bei späteren Verbindungen vergleicht es ihn — weicht er ab, bricht die Verbindung mit HOST KEY VERIFICATION FAILED ab (Schutz vor Man-in-the-Middle-Angriffen).
Warum Host-Key-Prüfung?
Jeder SSH-Server besitzt einen eindeutigen Host-Schlüssel. Ohne Prüfung könnte ein Angreifer die Verbindung abfangen und sich als Server ausgeben. known_hosts macht den ersten Kontakt prüfbar: Der Client fragt bei unbekanntem Host nach (Fingerabdruck anzeigen und bestätigen).
Aufbau und Einträge
server.example.com ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAI...
Pro Zeile stehen Hostname (oder IP), Schlüsseltyp und der öffentliche Schlüssel. Zusätzlich wird ein @cert-authority-Eintrag für von einer Zertifizierungsstelle signierte Schlüssel unterstützt. Die globale Variante /etc/ssh/ssh_known_hosts gilt für alle Benutzer.
Verwalten
ssh-keyscan server.example.com >> ~/.ssh/known_hosts— Host-Schlüssel automatisch eintragen.ssh-keygen -R server.example.com— bekannten Eintrag entfernen (z.B. nach Neuinstallation des Servers).StrictHostKeyChecking noin der ssh-config deaktiviert die Prüfung — nur für Testumgebungen, in Produktion ein Sicherheitsrisiko.
Sicherheit
Beim ersten Verbinden den angezeigten Fingerabdruck über einen vertrauenswürdigen Kanal verifizieren. ssh-keyscan sammelt die Schlüssel zwar automatisch, doch der erste Abruf selbst ist nicht gegen Manipulation geschützt — die erhaltenen Schlüssel sollten vor dem Vertrauen geprüft werden.
Verwandte Grundlagen: SSH, ssh-keygen, ssh-keyscan, authorized_keys und sshd.