Gibt es eine einfache Möglichkeit, um zu überprüfen, ob ein bestimmter privater Schlüssel mit einem bestimmten öffentlichen Schlüssel übereinstimmt? Ich habe ein paar * .pub- und ein paar * .key-Dateien und muss überprüfen, welche zu welchen passen.
Auch dies sind Pub / Key-Dateien, DSA.
Ich würde wirklich einen Einzeiler bevorzugen ...
encryption
ssl
openssl
key
Loki
quelle
quelle
id_rsa.pub.blahhost
Dateien, und ich wusste nicht, welcher mit dem einzelnenid_rsa
privaten Schlüssel übereinstimmt. Ich richte passwortloses scp ein, damit ich von alten Websites migrieren kann. Das Erstellen eines neuen Schlüsselpaars ist keine Option. Ich habe meine Schlüssel gut eingerichtet und werde das nicht durcheinander bringen.Ich vergleiche immer einen MD5-Hash des Moduls mit den folgenden Befehlen:
Wenn die Hashes übereinstimmen, gehören diese beiden Dateien zusammen.
quelle
Verwenden Sie für DSA-Schlüssel
um dann die öffentlichen Schlüssel zu drucken
Um die öffentlichen Schlüssel anzuzeigen, die einem privaten Schlüssel entsprechen, vergleichen Sie sie.
quelle
Angenommen, Sie haben die öffentlichen Schlüssel in x.509-Zertifikaten und nehmen an, dass es sich um RSA-Schlüssel handelt, dann tun Sie dies für jeden öffentlichen Schlüssel
Tun Sie dies für jeden privaten Schlüssel
Passen Sie dann die Schlüssel nach Modul an.
quelle
Die Prüfung kann mit diff erleichtert werden:
Das einzig Seltsame ist, dass diff nichts sagt, wenn die Dateien gleich sind. Sie werden also nur informiert, wenn öffentlich und privat nicht übereinstimmen.
quelle
diff -s
diff -qs
gibt eine einfache "identische / nicht identische Antwort" zurück. (2) Sie sollten den Kommentar in der öffentlichen Schlüsseldatei löschen, bevor Sie den Diff.Löschen Sie die öffentlichen Schlüssel und generieren Sie neue aus den privaten Schlüsseln. Bewahren Sie sie in separaten Verzeichnissen auf oder verwenden Sie eine Namenskonvention, um sie gerade zu halten.
quelle
Geben Sie den folgenden Befehl ein, um zu überprüfen, ob ein privater Schlüssel und ein öffentlicher Schlüssel eine übereinstimmende Menge (identisch) oder keine übereinstimmende Menge (verschieden) im Verzeichnis $ USER / .ssh sind. Der Befehl cut verhindert, dass der Kommentar am Ende der Zeile im öffentlichen Schlüssel verglichen wird, sodass nur der Schlüssel verglichen werden kann.
Die Ausgabe sieht wie eine dieser Zeilen aus.
Ich habe ein Shell-Skript geschrieben, mit dem Benutzer die Dateiberechtigung ihrer ~ / .ssh / -Dateien und des übereinstimmenden Schlüsselsatzes überprüfen. Es löst meine Herausforderungen mit Benutzervorfällen beim Einrichten von ssh. Es kann Ihnen helfen. https://github.com/BradleyA/docker-security-infrastructure/tree/master/ssh
Hinweis: Meine vorherige Antwort (im März 2018) funktioniert nicht mehr mit den neuesten Versionen von openssh. Vorherige Antwort: diff -qs <(ssh-keygen -yf ~ / .ssh / id_rsa) <(cut -d '' -f 1,2 ~ / .ssh / id_rsa.pub)
quelle
Wenn Sie unter Windows arbeiten und eine grafische Benutzeroberfläche verwenden möchten , können Sie mit puttygen Ihren privaten Schlüssel darin importieren:
Nach dem Import können Sie den öffentlichen Schlüssel speichern und mit Ihrem vergleichen.
quelle
Verschlüsseln Sie etwas mit dem öffentlichen Schlüssel und sehen Sie, welcher private Schlüssel es entschlüsselt.
Dieser Code-Projektartikel von niemand anderem als Jeff Atwood implementiert einen vereinfachten Wrapper um die .NET-Kryptoklassen. Angenommen, diese Schlüssel wurden für die Verwendung mit RSA erstellt, verwenden Sie die asymmetrische Klasse mit Ihrem öffentlichen Schlüssel zum Verschlüsseln und dieselbe mit Ihrem privaten Schlüssel zum Entschlüsseln.
quelle
Wenn es nichts zurückgibt, stimmen sie überein:
quelle
Verwenden Sie einfach puttygen und laden Sie Ihren privaten Schlüssel hinein. Bietet verschiedene Optionen, z. B. Exportieren des entsprechenden öffentlichen Schlüssels.
quelle