Unterschiedliche SSH-Bekannte-Formate

9303
caseif

Ich habe in letzter Zeit Probleme mit der Bereitstellung meines CI-Servers, weil der Client (CI) den Host-Schlüssel der Remote-Site (obwohl vorhanden) abgelehnt hat known_hosts. Ich war bis heute überrascht, als mir klar wurde, dass SSH Host-Schlüssel in einem Format speichert, mit dem das Implementierungs-Plugin nicht kompatibel zu sein scheint. Das kompatible Format (das sich noch auf meinem Computer befindet) ähnelt diesem:

11.22.33.44 ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCkVf7rhfC7nLxbeIQRj2bWitUC+XLSAeQ0ap8r8rKObDXYfPdB97NZth9JCEt3OrBXuBeg4PaAEuPu2QF7WXoT60hgAP6etr0W4LqcH59yd/X0ogFP7Y7hIf6dz1txDKaW92wgUi5XShwH6vukf0gLvW6/ak1LTBuoy72gaoUvxZge4KZivz9XqvSQHNOG9KYNfh8U6cRM8YTQo5in7YD5d6REV/FUmXpvBzCa9kbVRSlQFGYEc1HidTnPnJDteas3A9y3na385O7WN64aAkg7TO8IFXKdDHSwji9ZyrCVPA5GEuyLKhDFanV8iJ7CNflHMP8TwG5FOT2bSkV0lPyl

Während das Format SSH beim Akzeptieren neuer Host-Schlüssel derzeit gespeichert wird, ähnelt es diesem:

11.22.33.44 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBEJJEs165NgdEcD94Xg3ySFA/qgkfytxNCX1X3pB2SPgU/mHLGXCXM8+VqMBXocM8OMOq2L0fDGr5mI+nGqjhNU=

(Hinweis: Ich habe zwar die öffentlichen Schlüssel ein wenig durcheinander gebracht, sie ähneln sich aber in ihrer ursprünglichen Form überhaupt nicht.)

Nur das erste Format ist mit dem Implementierungsplugin kompatibel, das zweite Format wird unbedingt ignoriert. Kann jemand diese Diskrepanz erklären?

3

1 Antwort auf die Frage

6
Jakuje

Hierbei handelt es sich nicht um unterschiedliche Formate known_hosts, sondern um verschiedene Schlüsseltypen ( ssh-rsaund 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_hostsDatei 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

Das Format, das ich gewohnt bin, ist: IP-Adresse, Leerzeichen, Schlüsseltyp, Leerzeichen, Vierbuchstaben und einiges anderes (was oft ähnlich beginnt, aber schließlich die Rohschlüsseldaten enthält und sich unterscheidet). Daher haben beide Beispiele dasselbe Format. Mit ecdsa-sha2-nistp256 fällt mir eine weitere AAAA auf und eine spätere AAABBB scheint üblich zu sein. Ihre Lösung: Laden Sie das Plug-in hoch, um den neueren Schlüsseltyp zu unterstützen. (Sie möchten, dass Ihr Plug-In regelmäßig aktualisiert wird. Andernfalls kann dies ein ständiges Problem sein, da neue Schlüsseltypen üblich werden.) TOOGAM vor 8 Jahren 0
@TOOGAM Nein, der erste hat eine IP-Adresse. Die Schlüsseldaten müssen identisch sein, wenn Sie möchten, dass sie funktionieren (und warum dieselben Daten auf zwei verschiedene Arten codiert werden müssen). Jakuje vor 8 Jahren 0