Ich muss die SSH-Schlüsselprüfung für GitHub durchführen, bin mir jedoch nicht sicher, wie ich meinen RSA-Schlüsselfingerabdruck finde. Ich habe ursprünglich eine Anleitung zum Generieren eines SSH-Schlüssels unter Linux befolgt.
Welchen Befehl muss ich eingeben, um meinen aktuellen Fingerabdruck des RSA-Schlüssels zu finden?
function fingerprint() { ssh-keygen -lf $1 -E md5 }
Dann (nachdem Sie den bashrc bezogen haben) können Sie einen Fingerabdruck mitfingerprint ~/.ssh/key_file
;
im Körper. Verwenden Sie siefunction fingerprint() { ssh-keygen -lf $1 -E md5; }
stattdessen.Antworten:
Führen Sie den folgenden Befehl aus, um den SHA256-Fingerabdruck Ihres SSH-Schlüssels abzurufen (
-l
bedeutet "Liste", anstatt einen neuen Schlüssel zu erstellen,-f
bedeutet "Dateiname"):Auf meinem Computer lautete der Befehl, den ich ausgeführt habe (unter Verwendung des öffentlichen RSA-Schlüssels):
Führen Sie Folgendes aus, um das GitHub (MD5) -Fingerabdruckformat mit neueren Versionen von ssh-keygen zu erhalten:
Bonusinformationen:
ssh-keygen -lf
funktioniert auch aufknown_hosts
undauthorized_keys
Dateien.Führen Sie Folgendes aus, um die meisten öffentlichen Schlüssel auf Linux / Unix / OS X-Systemen zu finden
(Wenn Sie in die Homedirs anderer Benutzer sehen möchten, müssen Sie root oder sudo sein.)
Das
ssh-add -l
ist sehr ähnlich, listet jedoch die Fingerabdrücke der Schlüssel auf, die Ihrem Agenten hinzugefügt wurden. (OS X-Benutzer beachten, dass magisches passwortloses SSH über Schlüsselbund nicht dasselbe ist wie die Verwendung von ssh-agent.)quelle
.ssh/id_rsa
sollte also der gleiche sein wie der für.ssh/id_rsa.pub
. Sie können also beide verwenden (und wenn Sie wie ich sind und die Tab-Vervollständigung lieben, dauert der Job 2 Tastenanschläge weniger. Effizienz!).ssh-keygen -E md5 -lf ~/.ssh/id_rsa.pub
wenn Sie wollen nicht den Standard sha256 AusgangDie neueren SSH-Befehle listen Fingerabdrücke als SHA256- Schlüssel auf.
Zum Beispiel:
Wenn Sie es mit einem alten Fingerabdruck vergleichen müssen, müssen Sie auch angeben, dass die MD5- Fingerabdruck-Hashing-Funktion verwendet werden soll.
Auch verfügbar:
-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 Ekliptik-Schlüssel verwendet werden.
An jene 'Administratoren', die den Befehl, den ich oben verwendet habe, weiter bearbeiten. Hör auf, es zu ändern! Sie machen den Befehl und die daraus resultierende Ausgabe falsch!
quelle
ssh
den alten MD5-Fingerabdruck des Servers verwenden könnenssh -o FingerprintHash=md5 example.org
, wie in dieser Antwort erwähnt . (Ich habe nur danach gesucht, und diese Antwort hat mich zu dieser geführt, also denke ich, dass andere eine ähnliche Erfahrung machen könnten.)Um Ihren Schlüssel unter Ubuntu zu sehen, geben Sie einfach den folgenden Befehl auf Ihrem Terminal ein:
ssh-add -l
Sie erhalten eine Ausgabe wie
2568 0j:20:4b:88:a7:9t:wd:19:f0:d4:4y:9g:27:cf:97:23
folgt : yourName @ ubuntu (RSA)Wenn Sie jedoch einen Fehler wie erhalten;
Could not open a connection to your authentication agent.
Dann bedeutet dies, dass ssh-agent nicht ausgeführt wird. Sie können es starten / ausführen mit:
ssh-agent bash
(danke an @Richard in den Kommentaren) und dann erneut ausführenssh-add -l
quelle
ssh-agent bash
und mit dem Leben fortfahren. Im Leben wie immer;ssh-agent
ist nicht als konsistente Implementierung auf allen Systemen garantiert.Ein Schlüsselpaar (der private und der öffentliche Schlüssel) haben denselben Fingerabdruck. Wenn Sie sich also 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 häufigsten gewählte Antwort von Marvin Vinto liefert den Fingerabdruck einer öffentlichen SSH-Schlüsseldatei. Der Fingerabdruck des entsprechenden privaten SSH-Schlüssels kann ebenfalls abgefragt werden, erfordert jedoch eine längere Reihe von Schritten, wie unten gezeigt.
Laden Sie den SSH-Agenten, falls Sie dies nicht getan haben. Am einfachsten ist es, aufzurufen
oder
(oder eine andere Shell, die Sie verwenden).
Laden Sie den privaten Schlüssel, den Sie testen möchten:
Sie werden aufgefordert, die Passphrase einzugeben, wenn der Schlüssel kennwortgeschützt ist.
Geben Sie nun, wie andere gesagt haben, ein
fd:bc:...
ist der Fingerabdruck, nach dem Sie suchen. Wenn mehrere Schlüssel vorhanden sind, werden mehrere Zeilen gedruckt, und die letzte Zeile enthält den Fingerabdruck des zuletzt geladenen Schlüssels.Wenn Sie den Agenten stoppen möchten (dh wenn Sie Schritt 1 oben aufgerufen haben), geben Sie einfach "exit" in die Shell ein, und Sie befinden sich vor dem Laden des ssh-Agenten wieder in der Shell.
Ich füge keine neuen Informationen hinzu, aber hoffentlich ist diese Antwort für Benutzer aller Ebenen klar.
quelle
ssh-add -l
und gibtssh-keygen -l
denselben Fingerabdruck für ein bestimmtes Schlüsselpaar zurück. Es sollte auch ein Kleinbuchstabe sein-l
, kein Großbuchstabe.ssh-add -l
undssh-keygen -l
gebe den gleichen Fingerabdruck für ein bestimmtes Schlüsselpaar zurück. Aber ich verstehe nicht, was mit meinen ursprünglichen Aussagen im ersten Absatz falsch war. Ich habe einen Satz hinzugefügt, um das zu verdeutlichen.ssh-agent
. Angenommen,PRIVKEY
es wurde die private Schlüsseldatei undPUBKEY
die (anfangs nicht vorhandene) öffentliche Schlüsseldatei festgelegt. Gehen Siessh-keygen -y -f "${PRIVKEY}" > "${PUBKEY}"
wie folgt vor : Um den öffentlichen SSH-Schlüssel neu zu generieren,ssh-keygen -E md5 -l -v -f "${PUBKEY}"
wenn Sie den MD5-Hash oder nurssh-keygen -l -v -f "${PUBKEY}"
den SHA-256-Hash möchten (SHA-256 ist jetzt die Standardeinstellung).Der schnellste Weg, wenn sich Ihre Schlüssel in einem SSH-Agenten befinden:
Jeder Schlüssel im Agenten wird wie folgt gedruckt:
quelle
Hier werden Inhalte aus AWS- Foren reproduziert , da ich sie für meinen Anwendungsfall nützlich fand. Ich wollte überprüfen, welche meiner Schlüssel mit denen übereinstimmen, die ich in AWS importiert habe
openssl pkey -in ~/.ssh/ec2/primary.pem -pubout -outform DER | openssl md5 -c
Wobei: -
primary.pem
der zu überprüfende private Schlüssel istquelle
funktioniert auch unter Mac OS X 10.8 (Mountain Lion) - 10.10 (Yosemite).
Es unterstützt auch die Option
-E
, das Fingerabdruckformat anzugeben. Falls MD5 benötigt wird (es wird häufig verwendet, z. B. von GitHub), fügen Sie-E md5
es einfach dem Befehl hinzu.quelle
man ssh-add
der Option-l
ist "Listet Fingerabdrücke aller derzeit vom Agenten vertretenen Identitäten auf"Wenn Sie unter Windows PuTTY / Pageant ausführen, wird der Fingerabdruck aufgelistet, wenn Sie Ihren PuTTY-Schlüssel (.ppk) in Pageant laden. Es ist sehr nützlich, wenn Sie vergessen, welches Sie verwenden.
quelle
Dies ist die Shell-Funktion, mit der ich meinen SSH-Schlüsselfingerabdruck zum Erstellen von DigitalOcean- Tröpfchen erhalte :
Legen Sie es in Ihre
~/.bashrc
, Quelle, und dann können Sie den Fingerabdruck wie folgt erhalten:quelle
Wenn Ihr SSH-Agent ausgeführt wird, ist dies der Fall
um RSA-Fingerabdrücke aller Identitäten
-L
aufzulisten oder um öffentliche Schlüssel aufzulisten.Wenn Ihr Agent nicht ausgeführt wird, versuchen Sie Folgendes:
Und für Ihre öffentlichen Schlüssel:
Wenn Sie die Nachricht erhalten: ' Der Agent hat keine Identität. ', dann müssen Sie zuerst Ihren RSA-Schlüssel generieren
ssh-keygen
.quelle
/etc/ssh/ssh_host_ed25519_key.pub
. Der zweite Teil der Frage bleibt: Gibt es Nachteile bei der Verwendung dieses automatisch generierten Schlüssels?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:(Informationen zur Bedeutung der Parameter finden Sie in dieser Antwort zum
find
Befehl .Beachten Sie, dass die privaten / öffentlichen Dateien, die zu einem Schlüssel gehören, denselben Fingerabdruck haben, sodass Duplikate angezeigt werden.
quelle
Google Compute Engine zeigt den Fingerabdruck des SSH-Hostschlüssels in der seriellen Ausgabe einer Linux-Instanz an. Die API kann diese Daten von GCE abrufen, und es ist nicht erforderlich, sich bei der Instanz anzumelden.
Ich habe es nirgendwo anders gefunden als am seriellen Ausgang. Ich denke, der Fingerabdruck sollte sich an einem programmiererfreundlicheren Ort befinden.
Es scheint jedoch, dass dies vom Typ einer Instanz abhängt. Ich verwende Instanzen von Debian 7 (Wheezy) f1-micro.
quelle
Um einen Remote-SSH-Server vor der ersten Verbindung zu überprüfen, können Sie unter www.server-stats.net/ssh/ alle SHH-Schlüssel für den Server sowie den Zeitpunkt anzeigen, an dem der Schlüssel bekannt ist.
Das ist nicht wie ein SSL-Zertifikat, aber definitiv ein Muss, bevor Sie zum ersten Mal eine Verbindung zu einem SSH-Server herstellen.
quelle
Auf Fedora mache ich [finde ~ / .ssh], was mir sagt, dass die Schlüssel @ sind
quelle
~/.ssh/id*.pub
ist es) und möchte seine Fingerabdrücke bekommen.