Einen öffentlichen SSH-Schlüssel aus dem privaten Schlüssel erstellen?

215

Nehmen wir an, ich habe einen SSH-Schlüssel, aber den Teil mit dem öffentlichen Schlüssel gelöscht. Ich habe den privaten Schlüsselteil. Kann ich den öffentlichen Schlüssel auf irgendeine Weise neu generieren?

Rory
quelle

Antworten:

253

Verwenden Sie die Option -y für ssh-keygen:

ssh-keygen -f ~/.ssh/id_rsa -y > ~/.ssh/id_rsa.pub

Aus dem "Mann ssh-keygen"

 -y      This option will read a private OpenSSH format file and print an
         OpenSSH public key to stdout.

Geben Sie den privaten Schlüssel mit der Option -f an. Möglicherweise lautet Ihr Schlüssel dsa anstelle von rsa. Der Name Ihres privaten Schlüssels enthält wahrscheinlich den von Ihnen verwendeten. Der neu generierte öffentliche Schlüssel sollte der gleiche sein, den Sie zuvor generiert haben.

Kyle Brandt
quelle
7
Warum das "-t dsa"? Darf der OP-Schlüssel rsa sein? Ich würde -t loswerden und stattdessen -f verwenden.
14:44 Uhr
1
Guter Punkt, entsprechend aktualisiert
Kyle Brandt
Ja, meins war ursprünglich RSA.
Rory
1
Unter Mac OS X 10.9.3 Mavericks wird nach dem Ausführen des Befehls "Laden fehlgeschlagen" angezeigt. Wie löse ich das?
Hyperfocus
Ich denke, Sie könnten diesen Schritt mit dem Parameter -N noch weiter gehen, falls der private Schlüssel durch ein Passwort geschützt ist:ssh-keygen -f ~/.ssh/id_rsa -y -N "$PASSWORD" > ~/.ssh/id_rsa.pub
Ken
6

Die Lösung ist speziell für Benutzer, die Windows verwenden

Verwendetes Werkzeug:

  • Puttygen (PuTTY-Schlüsselgenerator)
  • WinSCP

Durchzuführende Schritte:

  1. Öffnen Sie den PuTTY Key Generator.
  2. Laden Sie Ihren privaten Schlüssel ( *.ppkDatei).
  3. Kopieren Sie Ihre öffentlichen Schlüsseldaten aus dem Abschnitt "Öffentlicher Schlüssel zum Einfügen in die OpenSSH-Datei" authorized_keys "des PuTTY-Schlüsselgenerators und fügen Sie die Schlüsseldaten in die Datei" authorized_keys "ein (mit dem Editor), wenn Sie sie verwenden möchten.

Schnappschuss mit Teilen von Puttygen zum Fokussieren:

Schnappschuss mit Teilen von Puttygen zum Fokussieren

devprashant
quelle
Weitere Informationen
devprashant
Puttygen kann auch private Schlüssel im OpenSSH- (wirklich OpenSSL-Legacy) und SSHCOM-Format "importieren". Und obwohl ursprünglich auf Windows, wurde es auch auf Unix portiert, und die Unix-Version von puttygenist ein Kommandozeilenprogramm (nicht GUI); siehe zb linux.die.net/man/1/puttygen
dave_thompson_085