GNU/Linux >> LINUX-Kenntnisse >  >> Linux

So prüfen Sie, ob ein öffentliches/privates RSA-Schlüsselpaar übereinstimmt

Lösung 1:

Ich bevorzuge ssh-keygen -y -e -f <private key> anstelle der akzeptierten Antwort von Wie testet man ein öffentliches/privates DSA-Schlüsselpaar? bei Stapelüberlauf.

ssh-keygen -y -e -f <private key> nimmt einen privaten Schlüssel und druckt den entsprechenden öffentlichen Schlüssel, der direkt mit Ihren verfügbaren öffentlichen Schlüsseln verglichen werden kann. (Tipp:Vorsicht bei Kommentaren oder Tastenoptionen.)

(Wie zum Teufel macht es das? Ich kann nur hoffen, dass der öffentliche Schlüssel direkt oder indirekt im privaten Schlüssel kodiert ist...)

Ich habe das selbst gebraucht und den folgenden Bash-Einzeiler verwendet. Es sollte nichts ausgeben, wenn die Schlüssel zusammengehören. Tragen Sie ein wenig -q auf zum Diff in Skripten und Diff setzt nur den Rückgabecode entsprechend.

PRIVKEY=id_rsa
TESTKEY=id_rsa.pub
diff <( ssh-keygen -y -e -f "$PRIVKEY" ) <( ssh-keygen -y -e -f "$TESTKEY" )

Lösung 2:

Je nachdem, wo Sie die zu testende öffentliche Schlüsseldatei erhalten, kann die akzeptierte Antwort zu falsch positiven Ergebnissen führen. Dies liegt an dem im Kommentar von @drewbenn beschriebenen Verhalten. Insbesondere, wenn die Option -e mit der privaten Schlüsseldatei als Parameter der Option -f verwendet wird, wiederholt sie einfach, was in der zugehörigen öffentlichen Schlüsseldatei steht (aber neu formatiert).

Mit anderen Worten,

ssh-keygen -y -f id_rsa

(scheinbar) erzeugt der Wert des öffentlichen Schlüssels und

ssh-keygen -y -e -f id_rsa

einfach und gibt (und formatiert) den Schlüssel im vorhandenen aus id_rsa.pub was auch immer es ist .

In meinem Fall muss ich überprüfen, ob das Paar nicht beschädigt wurde. Also beschloss ich, Folgendes zu vergleichen:

ssh-keygen -y -f id_rsa | cut -d' ' -f 2

mit

cut -d' ' -f 2 id_rsa.pub

Deshalb:

diff <(cut -d' ' -f 2 id_rsa.pub) <(ssh-keygen -y -f id_rsa | cut -d' ' -f 2)

Vielleicht ist das nicht so flexibel, aber es ist besser für meine Bedürfnisse. Vielleicht hilft es jemand anderem.

Lösung 3:

Wenn sie sich auf Ihrem lokalen System befinden, kleben Sie id_rsa.pub in Ihrem $HOME/.ssh/authorized_keys und ssh bis localhost mit dem id_rsa Schlüssel. Wenn es funktioniert, dann passen sie zusammen.

cat $HOME/.ssh/id_rsa.pub >> $HOME/.ssh/authorized_keys
ssh -i $HOME/.ssh/id_rsa localhost

Linux
  1. So generieren Sie ein SSH-Schlüsselpaar (mit Beispielen)

  2. Wie kann ich überprüfen, ob das SSH-Zertifikat mit dem angegebenen privaten Ssh-Ca-Schlüssel signiert wurde?

  3. Wie kann ich den öffentlichen Schlüssel von einem privaten SSH-Schlüssel abrufen?

  4. ssh-keygen - So legen Sie einen RSA-Schlüssel mit einem bestimmten Benutzernamen fest

  5. So verschlüsseln Sie eine große Datei in openssl mit einem öffentlichen Schlüssel

So überprüfen Sie die Python-Version

So überprüfen Sie die Java-Version

So richten Sie den öffentlichen und privaten SSH-Schlüssel unter Linux ein

Wie überprüfe ich die OpenGL-Version?

So fügen Sie dem Server einen öffentlichen SSH-Schlüssel hinzu

So konvertieren Sie den privaten Schlüssel von PuTTY (.ppk) in einen SSH-Schlüssel