Der Fingerabdruck basiert auf dem öffentlichen Schlüssel des Hosts, normalerweise auf "/etc/ssh/ssh_host_rsa_key.pub". Im Allgemeinen dient dies zur einfachen Identifizierung / Überprüfung des Hosts, zu dem Sie eine Verbindung herstellen.
Wenn sich der Fingerabdruck ändert, hat der Computer, zu dem Sie eine Verbindung herstellen, seinen öffentlichen Schlüssel geändert. Dies ist möglicherweise keine schlechte Sache (wenn Sie ssh neu installieren), kann jedoch auch darauf hinweisen, dass Sie eine Verbindung zu einem anderen Computer mit derselben Domäne / IP herstellen (wenn Sie eine Verbindung über einen Load Balancer herstellen) oder dass Sie dies tun werden mit einem Man-in-the-Middle-Angriff angegriffen, bei dem der Angreifer irgendwie Ihre SSH-Verbindung abfängt / umleitet, um eine Verbindung zu einem anderen Host herzustellen, der Ihren Benutzer / pw beschnüffeln könnte.
Fazit: Wenn Sie vor einem geänderten Fingerabdruck gewarnt werden, sollten Sie vorsichtig sein und überprüfen, ob Sie tatsächlich über eine sichere Verbindung eine Verbindung zum richtigen Host herstellen. Obwohl dies die meiste Zeit harmlos ist, kann es ein Hinweis auf ein potenzielles Problem sein
Siehe: http://www.lysium.de/blog/index.php?/archives/186-How-to-get-ssh-server-fingerprint-information.html
und: http://en.wikipedia.org/ wiki / Public_key_fingerprint
~/.ssh/known_hosts
. Auf diese Weise erkennt Ihr SSH-Client diesen Server, wenn Sie eine Verbindung zum Server herstellen, da Sie seinen öffentlichen Schlüssel unter gespeichert habenknown_hosts
. Daher sollten Sie eigentlich niemals "Ja" sagen, wenn der SSH-Client Ihnen mitteilt, dass die Authentizität des Hosts nicht festgestellt werden kann. Sie sollten immer vorher den öffentlichen Schlüssel des Servers hinzufügen.~/.ssh/known_hosts
vorher zu Ihrer Datei hinzufügen und niemals Ja sagen, wenn Ihr SSH-Client Ihnen mitteilt, dass die Authentizität des Clients nicht festgestellt werden kann, oder wenn er Ihnen mitteilt, dass der öffentliche Schlüssel des Servers vorhanden ist geändert".Sie können einen Fingerabdruck für einen öffentlichen Schlüssel folgendermaßen generieren
ssh-keygen
:Konkretes Beispiel (wenn Sie einen öffentlichen RSA-Schlüssel verwenden):
Der erste Teil
(2048)
ist die Schlüssellänge in Bits, der zweite Teil(00:11:22:33:44:55:66:77:88:99:aa:bb:cc:dd:ee:ff)
ist der Fingerabdruck des öffentlichen Schlüssels und der dritte Teil ist der Speicherort der öffentlichen Schlüsseldatei selbst.quelle
ssh-keygen -lf
dass Sie tun werden, was Sie wollen.ssh-keygen -lf /etc/ssh/ssh_host_rsa_key.pub
. Es zeigt den Fingerabdruck, der auch bei SSH-Anmeldungen bei localhost angezeigt wird.ssh-keygen
gemeldetensha256
Fingerabdrücke. Ummd5
Fingerabdrücke zu bekommen, rannte ich losssh-keygen -l -E md5 -f ~/.ssh/id_rsa.pub
. #archlinuxssh -o FingerprintHash=md5
oder das Äquivalent inssh_config
und auf Dinge, diessh
wie verwendenscp
.Der Fingerabdruck ist der MD5 über den Binärdaten im Base64-codierten öffentlichen Schlüssel.
Bei der md5sum 6530389635564f6464e8e3a47d593e19 handelt es sich um den Fingerabdruck, der beim Generieren des Schlüssels nur ohne die Trennzeichen angezeigt wird.
Wenn Sie sich jedoch mit den Fingerabdrücken befassen, die Amazon in der EC2-Schlüsselpaarkonsole anzeigt , ist dies möglicherweise ein anderes Biest . Wenn es sich um eine 32-stellige Hex-Zeichenfolge handelt, handelt es sich um den oben angegebenen Standard-Fingerabdruck des öffentlichen MD5-SSH-Schlüssels. Wenn es sich jedoch um 40 Hexadezimalstellen handelt, handelt es sich tatsächlich um einen Fingerabdruck, der berechnet wird, indem der SHA1 des privaten Schlüssels im PKCS # 8-Format verwendet wird:
quelle
awk '{print $2}' /path/to/keyfile.pub
oder ähnlich.cat id_rsa.pub | cut -d' ' -f2 | base64 -d | md5sum
Wenn Sie eine SSH-Schlüsseldatei überprüfen möchten, um festzustellen, ob sie mit der Datei identisch ist, die von github als "Bereitstellungsschlüssel" gemeldet wird, ist dies das Richtige für Sie ...
Von der privaten URL: https://github.com/<username>/<repo_name>/settings/keys werden Sie sehen
Am Terminal:
Sie werden feststellen, dass Sie für den privaten und den öffentlichen Schlüssel denselben Fingerabdruck erhalten.
Derselbe Befehl kann mit einer netten Funktion von GitHub kombiniert werden, nämlich der Tatsache, dass sie die öffentlichen SSH-Schlüssel der Benutzer unter https://github.com/<Benutzername>.keys öffentlich bereitstellen
Hier ist ein Einzeiler, mit dem Sie die Vorteile nutzen können.
quelle
Gibt die Fingerabdrücke für alle konfigurierten öffentlichen Schlüssel auf einer sshd-Instanz aus.
Diese können dann in DNS-SSHFP- Einträge eingefügt werden.
quelle