Es scheint, dass openssh die Art und Weise geändert hat, wie wichtige Fingerabdrücke angezeigt werden.
Ich versuche, von einem Client-Computer auf einen Server zu ssh:
- client: ubuntu 14.04 mit OpenSSH 6.6.1
- Server: FreeBSD mit OpenSSH 7.2p2.
Der Client meldet den md5-Hash des Serverschlüssels als eine Folge von 16 hexadezimalen Ziffernpaaren wie folgt:
a7:b1:3e:3d:84:24:a2:5a:91:5f:6f:e9:cf:dd:2b:6a
Der Server verwendet standardmäßig den sha256-Hash, aber dank dieser Antwort kann ich ihn zwingen, den sha1-Hash zu geben, indem ich Folgendes ausführe:
[root@host /etc/ssh]# ssh-keygen -l -E sha1 -f ssh_host_ecdsa_key.pub
Ich möchte, dass das Ergebnis so aussieht:
a7:b1:3e:3d:84:24:a2:5a:91:5f:6f:e9:cf:dd:2b:6a
aber stattdessen bekomme ich das:
256 SHA1:KIh0ejR4O+RqrSq7JdGAASddRfI [email protected] (ECDSA)
Für mich sieht es so aus, als würde jetzt eine Base64-codierte Version des Fingerabdrucks anstelle von Hex-Ziffern angezeigt.
Wie kann ich die vom (älteren) Client gemeldete Prüfsumme des Serverschlüssels im selben Format erhalten (durch Doppelpunkte getrennte Hex-Ziffern, sha1-Hash), um zu überprüfen, ob sie gleich sind?
BEARBEITEN: Die alte Version von SSH gibt die MD5- Prüfsumme, nicht die SHA1-Prüfsumme, wie ich fälschlicherweise dachte. Die Verwendung dieser Prüfsumme (wie in der jetzt akzeptierten Antwort angegeben) in der Option -E ergibt die gewünschte Ausgabe.
sha1
statt falsch aufgelistet istmd5
! Ich habe Ubuntu-Version mit openssh-6.9 veraltet, aber es funktioniert einwandfrei.Wie sich herausstellt, kann das SSH-Kochbuch manuell Schlüssel im älteren Hex-Format generieren. Ich habe dies auf dem Freebsd-Server verwendet.
Aufschlüsselung:
Drucken Sie die zweite (durch Leerzeichen getrennte) Spalte in "key.pub" aus, bei der es sich um den eigentlichen Schlüssel handelt
Der Schlüssel ist Base64-codiert. Dies gibt die tatsächlichen Bytes des Schlüssels aus
Dies ist freebsds Äquivalent zu 'md5sum -b', das im Rezept auf der ssh-Kochbuchseite angegeben wurde
Hier gibt es zwei sed-Befehle:
Ersetzen Sie jedes Zeichenpaar in der Zeile (dank der Markierung 'g' am Ende) durch dasselbe Paar, gefolgt von einem Doppelpunkt
Entfernen Sie alle nachfolgenden Doppelpunkte (ersetzen Sie einen Doppelpunkt, gefolgt von einem Leerzeichen, gefolgt von etwas bis zum Ende der Zeile, mit nichts).
quelle
In solchen Fällen verwende ich das folgende kleine Skript (getestet auf Debian und Ubuntu):
Anwendungsbeispiel:
quelle