Was ist ein SSH-Schlüsselfingerabdruck und wie wird er generiert?

Was ist ein SSH-Schlüsselfingerabdruck und wie wird er generiert?

sshWenn ich eine neue Maschine einbaue, wird mir immer die folgende Meldung angezeigt :

12:f8:7e:78:61:b4:bf:e2:de:24:15:96:4e:d4:72:53

Wofür steht das? Wird jede Maschine jedes Mal den gleichen Fingerabdruck haben?

Wie entstehen diese Fingerabdrücke? Von welchen Parametern sind sie abhängig?

Antwort1

Der Fingerabdruck basiert auf dem öffentlichen Schlüssel des Hosts, der normalerweise auf der /etc/ssh/ssh_host_rsa_key.pubDatei basiert. Im Allgemeinen dient er zur einfachen Identifizierung/Verifizierung des Hosts, mit dem Sie eine Verbindung herstellen.

Wenn sich der Fingerabdruck ändert, hat die Maschine, mit der Sie sich verbinden, ihren öffentlichen Schlüssel geändert. Das muss nicht unbedingt etwas Schlechtes sein (passiert, wenn Sie SSH neu installieren), aber es könnte auch darauf hinweisen, dass Sie sich mit einer anderen Maschine mit derselben Domäne/IP verbinden (passiert, wenn Sie sich über etwas wie einen Load Balancer verbinden) oder dass Sie das Ziel eines Man-in-the-Middle-Angriffs sind, bei dem der Angreifer Ihre SSH-Verbindung irgendwie abfängt/umleitet, um sich mit einem anderen Host zu verbinden, der Ihren Benutzernamen/Ihr Passwort ausspionieren könnte.

Endeffekt:Wenn Sie vor einem geänderten Fingerabdruck gewarnt werden, seien Sie vorsichtig und überprüfen Sie, ob Sie sich tatsächlich über eine sichere Verbindung mit dem richtigen Host verbinden. Obwohl dies in den meisten Fällen harmlos ist, kann es ein Hinweis auf ein potenzielles Problem sein.

Sehen:http://www.lysium.de/blog/index.php?/archives/186-So erhalten Sie Fingerabdruckinformationen zu Ihrem SSH-Server.html
Und:http://en.wikipedia.org/wiki/Public_key_fingerprint

Antwort2

ssh-keygenSie können einen Fingerabdruck für einen öffentlichen Schlüssel folgendermaßen generieren :

ssh-keygen -lf /path/to/key.pub

Konkretes Beispiel (wenn Sie einen öffentlichen RSA-Schlüssel verwenden):

$ ssh-keygen -lf ~/.ssh/id_rsa.pub
2048 00:11:22:33:44:55:66:77:88:99:aa:bb:cc:dd:ee:ff /Users/username/.ssh/id_rsa.pub (RSA)

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.

In neueren Versionen von OpenSSH wird Base64-kodiertes SHA-256 anstelle von hexadezimalem MD5 angezeigt. Um den Hash im Legacy-Stil anzuzeigen, verwenden Sie

$ ssh-keygen -l -E md5 -f ~/.ssh/id_rsa.pub

Antwort3

Der Fingerabdruck ist der MD5 über den Binärdaten innerhalb des Base64-codierten öffentlichen Schlüssels.

$ ssh-keygen -f foo
Generating public/private rsa key pair.
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in foo.
Your public key has been saved in foo.pub.
The key fingerprint is:
65:30:38:96:35:56:4f:64:64:e8:e3:a4:7d:59:3e:19 andrew@localhost
The key's randomart image is:
+--[ RSA 2048]----+
|       +*..+*    |
|      =. +.=     |
|     . . .o .    |
|         o+   E  |
|        S= . + o |
|        . o o +  |
|           .   . |
|                 |
|                 |
+-----------------+
$ cat foo.pub
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDEbKq5U57fhzQ3SBbs3NVmgY2ouYZfPhc6cXBNEFpRT3T100fnbkYw+EHi76nwsp+uGxk08kh4GG881DrgotptrJj2dJxXpWp/SFdVu5S9fFU6l6dCTC9IBYYCCV8PvXbBZ3oDZyyyJT7/vXSaUdbk3x9MeNlYrgItm2KY6MdHYEg8R994Sspn1sE4Ydey5DfG/WNWVrzFCI0sWI3yj4zuCcUXFz9sEG8fIYikD9rNuohiMenWjkj6oLTwZGVW2q4wRL0051XBkmfnPD/H6gqOML9MbZQ8D6/+az0yF9oD61SkifhBNBRRNaIab/Np7XD61siR8zNMG/vCKjFGICnp andrew@localhost
$ echo 'AAAAB3NzaC1yc2EAAAADAQABAAABAQDEbKq5U57fhzQ3SBbs3NVmgY2ouYZfPhc6cXBNEFpRT3T100fnbkYw+EHi76nwsp+uGxk08kh4GG881DrgotptrJj2dJxXpWp/SFdVu5S9fFU6l6dCTC9IBYYCCV8PvXbBZ3oDZyyyJT7/vXSaUdbk3x9MeNlYrgItm2KY6MdHYEg8R994Sspn1sE4Ydey5DfG/WNWVrzFCI0sWI3yj4zuCcUXFz9sEG8fIYikD9rNuohiMenWjkj6oLTwZGVW2q4wRL0051XBkmfnPD/H6gqOML9MbZQ8D6/+az0yF9oD61SkifhBNBRRNaIab/Np7XD61siR8zNMG/vCKjFGICnp' \
    | base64 -D | md5
6530389635564f6464e8e3a47d593e19

Die MD5-Summe 6530389635564f6464e8e3a47d593e19 ist der Fingerabdruck, der bei der Schlüsselgenerierung angezeigt wird, nur ohne die trennenden Doppelpunkte.


Wenn Sie jedoch mit den Fingerabdrücken arbeiten, die Amazon in der EC2 Key Pairs-Konsole anzeigt, leider ist das möglicherweise ein anderes Kaliber. Wenn es sich um eine 32-stellige Hex-Zeichenfolge handelt, handelt es sich um den oben genannten Standard-MD5-SSH-Public-Key-Fingerabdruck. Wenn es sich jedoch um 40 Hex-Ziffern handelt, handelt es sich tatsächlich um einen Fingerabdruck, der berechnet wird, indem der SHA1 desPrivat Schlüsselim PKCS#8-Format:

$ openssl pkcs8 -in foo -nocrypt -topk8 -outform DER | openssl sha1 -c
e2:77:39:d3:53:a7:62:68:5f:da:82:0e:99:61:30:64:a2:88:c4:58

Antwort4

Zur Überprüfung des Fingerabdrucks, der auf Azure Devops vorhanden ist, können Sie verwenden

$ ssh-keygen -E md5 -lf .ssh/id_rsa.pub
2048 MD5:ba:42:24:87:d6:7b:71:a2:3e:b5:9a:31:b2:2c:e0:00 CrazyGirrafe@Australasia (RSA)

verwandte Informationen