1077 Stimmen

RSA-Schlüssel-Fingerabdruck berechnen

Ich muss die SSH-Schlüsselprüfung für GitHub durchführen, bin mir aber nicht sicher, wie ich meinen RSA-Schlüssel-Fingerprint finden kann. Ursprünglich bin ich einer Anleitung gefolgt, um einen SSH-Schlüssel unter Linux zu erzeugen.

Wie lautet der Befehl, den ich eingeben muss, um meinen aktuellen RSA-Schlüssel-Fingerabdruck zu finden?

1501voto

Marvin Pinto Punkte 29072

Führen Sie den folgenden Befehl aus, um den SHA256-Fingerabdruck Ihres SSH-Schlüssels abzurufen ( -l bedeutet "Liste" anstelle von "einen neuen Schlüssel erstellen", -f bedeutet "Dateiname"):

$ ssh-keygen -lf /path/to/ssh/key

Auf meinem Rechner habe ich zum Beispiel folgenden Befehl ausgeführt (mit öffentlichem RSA-Schlüssel):

$ 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)

Um das GitHub (MD5)-Fingerprint-Format mit neueren Versionen von ssh-keygen zu erhalten, führen Sie aus:

$ ssh-keygen -E md5 -lf <fileName>

Zusätzliche Informationen:

ssh-keygen -lf funktioniert auch bei known_hosts y authorized_keys Dateien.

Um die meisten öffentlichen Schlüssel auf Linux/Unix/OS X-Systemen zu finden, führen Sie

$ find /etc/ssh /home/*/.ssh /Users/*/.ssh -name '*.pub' -o -name 'authorized_keys' -o -name 'known_hosts'

(Wenn Sie in die Homedirs anderer Benutzer sehen wollen, müssen Sie Root oder sudo sein).

En ssh-add -l ist sehr ähnlich, listet aber die Fingerabdrücke der Schlüssel auf, die Ihrem Agenten hinzugefügt wurden. (OS X-Benutzer sollten beachten, dass magisches passwortloses SSH über Keychain nicht dasselbe ist wie die Verwendung von ssh-agent).

723voto

anthony Punkte 7378

Die neueren SSH-Befehle listen Fingerabdrücke als SHA256 Schlüssel.

Zum Beispiel:

ssh-keygen -lf ~/.ssh/id_dsa.pub 
1024 SHA256:19n6fkdz0qqmowiBy6XEaA87EuG/jgWUr44ZSBhJl6Y (DSA)

Wenn Sie ihn mit einem alten Fingerabdruck vergleichen wollen, müssen Sie auch angeben, dass Sie die MD5 Fingerabdruck-Hashing-Funktion.

ssh-keygen -E md5 -lf ~/.ssh/id_dsa.pub
2048 MD5:4d:5b:97:19:8c:fe:06:f0:29:e7:f5:96:77:cb:3c:71 (DSA)

Auch verfügbar: -E sha1

Update... JA...ja... Ich weiß... DSA-Schlüssel für SSH sollten nicht mehr verwendet werden, stattdessen sollten die älteren RSA-Schlüssel oder die neueren ecliptischen Schlüssel verwendet werden.

An die "Admins", die den Befehl, den ich oben verwendet habe, immer wieder ändern. HÖRT AUF, IHN ZU ÄNDERN! Sie machen den Befehl und die resultierende Ausgabe falsch!

28voto

Komu Punkte 12504

Um Ihren Schlüssel unter Ubuntu zu sehen, geben Sie einfach den folgenden Befehl in Ihrem Terminal ein:

ssh-add -l

Sie erhalten dann eine Ausgabe wie diese: 2568 0j:20:4b:88:a7:9t:wd:19:f0:d4:4y:9g:27:cf:97:23 IhrName@ubuntu (RSA)

Wenn Sie jedoch eine Fehlermeldung erhalten wie; Could not open a connection to your authentication agent.
Dann bedeutet dies, dass ssh-agent nicht läuft. Sie können es mit starten/ausführen: ssh-agent bash (Dank an @Richard in den Kommentaren) und dann erneut ausführen ssh-add -l

20voto

Wirawan Purwanto Punkte 3165

Ein Schlüsselpaar (privater und öffentlicher Schlüssel) hat denselben Fingerabdruck; wenn Sie sich also nicht mehr erinnern können, welcher private Schlüssel zu welchem öffentlichen Schlüssel gehört, finden Sie die Übereinstimmung, indem Sie ihre Fingerabdrücke vergleichen.

Die meistgewählte Antwort von Marvin Vinto liefert den Fingerabdruck eines öffentlich SSH-Schlüsseldatei. Der Fingerabdruck des entsprechenden privat Der SSH-Schlüssel kann ebenfalls abgefragt werden, erfordert aber eine längere Reihe von Schritten, wie unten gezeigt.

  1. Laden Sie den SSH-Agenten, falls Sie dies noch nicht getan haben. Der einfachste Weg ist der Aufruf von

    $ ssh-agent bash

    または

    $ ssh-agent tcsh

    (oder eine andere Shell, die Sie verwenden).

  2. Laden Sie den privaten Schlüssel, den Sie testen möchten:

    $ ssh-add /path/to/your-ssh-private-key

    Wenn der Schlüssel passwortgeschützt ist, werden Sie aufgefordert, die Passphrase einzugeben.

  3. Wie andere bereits gesagt haben, tippen Sie

    $ ssh-add -l
    1024 fd:bc:8a:81:58:8f:2c:78:86:a2:cf:02:40:7d:9d:3c you@yourhost (DSA)

    fd:bc:... ist der gesuchte Fingerabdruck. Wenn es mehrere Schlüssel gibt, werden mehrere Zeilen gedruckt, und die letzte Zeile enthält den Fingerabdruck des zuletzt geladenen Schlüssels.

  4. Wenn Sie den Agenten stoppen wollen (d.h. wenn Sie Schritt 1 oben aufgerufen haben), dann geben Sie einfach `exit' auf der Shell ein, und Sie sind wieder auf der Shell vor dem Laden des ssh-Agenten.

Ich füge keine neuen Informationen hinzu, aber ich hoffe, dass diese Antwort für Benutzer aller Ebenen klar ist.

19voto

Phil Punkte 1869

Reproduzieren von Inhalten von AWS Foren hier, weil ich es für meinen Anwendungsfall nützlich fand - ich wollte überprüfen, welche meiner Schlüssel mit denen übereinstimmen, die ich in AWS importiert hatte

openssl pkey -in ~/.ssh/ec2/primary.pem -pubout -outform DER | openssl md5 -c

Wo:

  • primary.pem ist der zu prüfende private Schlüssel

Beachten Sie, dass dies einen anderen Fingerabdruck ergibt als der, der mit ssh-keygen .

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X