wake-up-neo.com

Wie finde ich meinen RSA-Schlüsselfingerabdruck?

Ich muss die SSH-Schlüsselprüfung für GitHub durchführen, aber ich bin nicht sicher, wie ich meinen RSA-Schlüsselfingerabdruck finden kann. Ich folgte ursprünglich einer Anleitung, um das Setup auf einer Ubuntu 10.04 (Lucid Lynx) Box durchzuführen, die von Linode gehostet wurde.

Welchen Befehl muss ich eingeben, um meinen aktuellen Fingerabdruck für den RSA-Schlüssel zu finden, wenn ich mit PuTTY remote protokolliert werde?

793
Zakoff

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

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

Auf meinem Rechner war der Befehl, den ich beispielsweise ausführte (mit dem öffentlichen 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)

Führen Sie bei neueren Versionen von ssh-keygen ssh-keygen -E md5 -lf <fileName> aus, wenn Sie dasselbe Format wie das alte Format verwenden möchten (danke, Lloyd Dewolf).

Bonusinformationen:

ssh-keygen -lf funktioniert auch für known_hosts- und authorized_keys-Dateien.

Finden Sie mit find /etc/ssh /home/*/.ssh /Users/*/.ssh -name '*.pub' -o -name 'authorized_keys' -o -name 'known_hosts' auf einem Linux/Unix/OS X-System die meisten öffentlichen Informationen (Wenn Sie die Homedirs anderer Benutzer sehen möchten, müssen Sie root oder Sudo sein.)

ssh-add -l ist sehr ähnlich, listet jedoch die Fingerabdrücke der Schlüssel auf, die Ihrem Agenten hinzugefügt wurden. (Benutzer von OS X nehmen zur Kenntnis, dass magisches Kennwort ohne SSH über Schlüsselbund nicht dasselbe ist wie das Verwenden von ssh-agent.)

1088
Marvin Pinto

Die neueren SSH-Befehle listen Fingerabdrücke alsSHA256Key auf.

Zum Beispiel:

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

Wenn Sie es mit einem alten Fingerabdruck vergleichen müssen, müssen Sie auch die Verwendung derMD5Fingerprint-Hashing-Funktion angeben.

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)

Ebenfalls erhältlich: -E sha1

Update ... JA ... ja ... ich weiß ... DSA-Schlüssel für SSH sollten nicht mehr verwendet werden, stattdessen sollten der ältere RSA-Schlüssel oder neuere Ekliptikschlüssel verwendet werden.

Für die 'Admins', die den Befehl bearbeiten, den ich oben verwendet habe. STOPPEN SIE ÄNDERN! Sie machen den Befehl und die resultierende Ausgabe falsch!

622
anthony

Um Ihren Schlüssel unter Ubuntu anzuzeigen, geben Sie einfach den folgenden Befehl in Ihr Terminal ein:

ssh-add -l

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

Wenn du aber einen Fehler bekommst; Could not open a connection to your authentication agent.
Dann heißt es, dass der ssh-agent nicht läuft. Sie können es mit: .__ starten und ausführen. ssh-agent bash (Danke an @Richard in den Kommentaren) und dann ssh-add -l erneut ausführen

25
Komu

Ein Schlüsselpaar (der private und der öffentliche Schlüssel) haben denselben Fingerabdruck. Wenn Sie sich nicht erinnern können, welcher private Schlüssel zu welchem ​​öffentlichen Schlüssel gehört, finden Sie die Übereinstimmung, indem Sie deren Fingerabdrücke vergleichen.

Die am meisten gewählte Antwort von Marvin Vinto liefert den Fingerabdruck einer public SSH-Schlüsseldatei. Der Fingerabdruck des entsprechenden private SSH-Schlüssels kann ebenfalls abgefragt werden, erfordert jedoch eine längere Schrittfolge (siehe unten).

  1. Laden Sie den SSH-Agenten, falls Sie dies nicht getan haben. Der einfachste Weg ist das Anrufen

    $ ssh-agent bash
    

    oder

    $ ssh-agent tcsh
    

    (oder eine andere von Ihnen verwendete Shell).

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

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

    Sie werden aufgefordert, die Passphrase einzugeben, wenn der Schlüssel durch ein Passwort geschützt ist.

  3. Nun, wie andere gesagt haben, tippen Sie

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

    fd:bc:... ist der Fingerabdruck, nach dem Sie suchen. Bei mehreren Schlüsseln werden mehrere Zeilen gedruckt, und die letzte Zeile enthält den Fingerabdruck des zuletzt geladenen Schlüssels.

  4. Wenn Sie den Agenten anhalten möchten (d. H., Wenn Sie Schritt 1 oben aufgerufen haben), geben Sie einfach "exit" in die Shell ein und Sie befinden sich wieder in der Shell, bevor Sie den ssh-Agent laden.

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

16

Der schnellste Weg, wenn sich Ihre Schlüssel in einem SSH-Agenten befinden:

$ ssh-add -L | ssh-keygen -E md5 -lf /dev/stdin

Jeder Schlüssel im Agenten wird wie folgt gedruckt:

4096 MD5:8f:c9:dc:40:ec:9e:dc:65:74:f7:20:c1:29:d1:e8:5a /Users/cmcginty/.ssh/id_rsa (RSA)
11
cmcginty

Wiedergabe von Inhalten aus AWS Foren hier, weil ich es für meinen Anwendungsfall nützlich fand - wollte ich prü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

Dabei gilt Folgendes: - primary.pem ist der zu überprüfende private Schlüssel

10
Phil
$ ssh-add -l 

funktioniert auch auf Mac OS X 10.8 (Mountain Lion) - v10.10 (Yosemite).

Es unterstützt auch die Option -E zur Angabe des Fingerabdruckformats. Falls MD5 benötigt wird (wird häufig verwendet, z. B. von GitHub), fügen Sie dem Befehl einfach -E md5 hinzu.

9
geeklizzard

Dies ist die Shell-Funktion, mit der ich meinen SSH-Schlüssel-Fingerabdruck zum Erstellen von DigitalOcean Droplets bekomme:

fingerprint() {
    pubkeypath="$1"
    ssh-keygen -E md5 -lf "$pubkeypath" | awk '{ print $2 }' | cut -c 5-
}

Fügen Sie es in Ihren ~/.bashrc ein, beschaffen Sie es und dann können Sie den Fingerabdruck wie folgt erhalten:

$ fingerprint ~/.ssh/id_rsa.pub
d2:47:0a:87:30:a0:c0:df:6b:42:19:55:b4:f3:09:b9
7
Bryce Guinta

Wenn Sie unter Windows PuTTY /Pageant ausführen, wird der Fingerabdruck aufgelistet, wenn Sie die PuTTY-Taste (.ppk) in Pageant laden. Es ist sehr nützlich, wenn Sie vergessen, welche Sie verwenden.

Enter image description here

4
Dmitri R117

Wenn Ihr SSH-Agent ausgeführt wird, ist dies der Fall

ssh-add -l

um RSA-Fingerabdrücke aller Identitäten aufzulisten, oder -L für die Auflistung öffentlicher Schlüssel.

Wenn Ihr Agent nicht läuft, versuchen Sie Folgendes:

ssh-agent sh -c 'ssh-add; ssh-add -l'

Und für Ihre öffentlichen Schlüssel:

ssh-agent sh -c 'ssh-add; ssh-add -L'

Wenn Sie die Meldung erhalten: ' Der Agent hat keine Identitäten. ', dann müssen Sie Ihren RSA-Schlüssel zuerst mit ssh-keygen erzeugen.

2
kenorb

Auf Fedora mache ich [locate ~/.ssh], was mir sagt, dass die Schlüssel @ sind

/root/.ssh
/root/.ssh/authorized_keys
0

Manchmal haben Sie eine Reihe von Schlüsseln in Ihrem ~/.ssh -Verzeichnis und wissen nicht, welche mit dem von GitHub/Gitlab/etc angezeigten Fingerabdruck übereinstimmen.

So zeigen Sie die Schlüsseldateinamen und MD5-Fingerabdrücke aller Schlüssel in Ihrem ~/.ssh-Verzeichnis an:

cd ~/.ssh
find . -type f -exec printf "\n{}\n" \; -exec ssh-keygen -E md5 -lf {} \;

(Informationen zur Bedeutung der Parameter finden Sie in Diese Antwort zum Befehl find .

Beachten Sie, dass die privaten/öffentlichen Dateien, die zu einem Schlüssel gehören, denselben Fingerabdruck haben, sodass Sie Duplikate sehen.

0
Dan Dascalescu

Um einen Remote-SSH-Server vor der ersten Verbindung zu überprüfen, können Sie unter www.server-stats.net/ssh/ nachsehen, wo alle SHH-Schlüssel für den Server und von wo aus der Schlüssel bekannt ist .

Dies ist kein SSL-Zertifikat, aber vor der ersten Verbindung mit einem SSH-Server ein absolutes Muss.

0
p974

Die Google Compute Engine zeigt den Fingerabdruck des SSH-Host-Schlüssels in der seriellen Ausgabe einer Linux-Instanz. Die API kann diese Daten von GCE beziehen, und Sie müssen sich nicht bei der Instanz anmelden.

Ich habe es nirgendwo anders gefunden als durch die serielle Ausgabe. Ich denke, der Fingerabdruck sollte an einem eher programmierfreundlichen Ort sein.

Es scheint jedoch, dass dies vom Typ einer Instanz abhängt. Ich verwende Instanzen von Debian 7 (Wheezy) f1-micro.

0
re Paul