Hierbei handelt es sich nicht um unterschiedliche Formate known_hosts
, sondern um verschiedene Schlüsseltypen ( ssh-rsa
und ecdsa-sha2-nistp256
- gut beschrieben auf der Manualpage für sshd
). Server verfügen normalerweise über mehrere Host-Schlüssel unterschiedlicher Typen, um eine breitere Kompatibilität mit verschiedenen Clients zu gewährleisten.
Wenn Sie sich auf dem Server befinden, können Sie alle Host-Schlüssel finden und deren öffentlichen Schlüssel mit drucken. Die Zeile hat jedoch nicht das gleiche Format wie:
$ cat /etc/ssh/ssh_host_*.pub ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBEJJEs165NgdEcD94Xg3ySFA/qgkfytxNCX1X3pB2SPgU/mHLGXCXM8+VqMBXocM8OMOq2L0fDGr5mI+nGqjhNU= user@host
Das Format, das von der known_hosts
Datei akzeptiert wird, kann mit (vom Server zur Erlangung der Authentizität der Schlüssel) abgerufen werden:
$ ssh-keyscan 11.22.33.44 11.22.33.44 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBEJJEs165NgdEcD94Xg3ySFA/qgkfytxNCX1X3pB2SPgU/mHLGXCXM8+VqMBXocM8OMOq2L0fDGr5mI+nGqjhNU= #[...]
Dadurch wird das Format gedruckt, das Sie direkt im Client speichern können known_hosts
.
Für das ganze Bild (von der Manualseite):
Jede Zeile in diesen Dateien enthält die folgenden Felder: Markierungen (optional), Hostnamen, Bits, Exponent, Modul und Kommentar. Die Felder sind durch Leerzeichen getrennt.
(Obwohl es mit dem generierten Inhalt nicht übereinstimmt: Hostname, Schlüsseltyp, Schlüsseldaten (base64)) - werde ich das später überprüfen, da es für die Frage nicht wichtig ist