Creare una chiave SSH pubblica dalla chiave privata?


215

Supponiamo di avere una chiave SSH, ma ho eliminato la parte della chiave pubblica. Ho la parte della chiave privata. Esiste un modo per rigenerare la parte della chiave pubblica?

Risposte:


253

Usa l'opzione -y per ssh-keygen:

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

Da "man ssh-keygen"

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

Specificare la chiave privata con l'opzione -f, la tua potrebbe essere dsa anziché rsa. Il nome della tua chiave privata probabilmente contiene quello che hai usato. La chiave pubblica appena generata dovrebbe essere uguale a quella generata in precedenza.


7
Perché il "-t dsa"? Mayge la chiave del PO è rsa? Mi sbarazzerei di -t e userei invece -f.
InnaM,

1
Buon punto, aggiornato di conseguenza
Kyle Brandt

sì, il mio originariamente era RSA.
Rory,

1
Su Mac OSX 10.9.3 Mavericks ricevo 'caricamento fallito' dopo aver eseguito il comando. Come lo risolvo?
Hyperfocus,

Penso che potresti fare un ulteriore passo avanti con il parametro -N nel caso in cui la chiave privata sia protetta da password:ssh-keygen -f ~/.ssh/id_rsa -y -N "$PASSWORD" > ~/.ssh/id_rsa.pub
ken

6

La soluzione è specifica per gli utenti che utilizzano Windows

Strumento utilizzato:

  • Puttygen (generatore di chiavi PuTTY)
  • WinSCP

I passaggi per eseguire:

  1. Apri il generatore di chiavi PuTTY.
  2. Carica la tua chiave privata ( *.ppkfile).
  3. Copia i dati della tua chiave pubblica dalla sezione "Chiave pubblica per incollarla nel file OpenSSH authorized_keys" del generatore di chiavi PuTTY e incolla i dati della chiave nel file "authorized_keys" (usando il blocco note) se vuoi usarli.

Istantanea che mostra parti di Puttygen da mettere a fuoco:

Istantanea che mostra parti di Puttygen da mettere a fuoco



Puttygen può anche 'importare' chiavi private in formato OpenSSH (veramente OpenSSL-legacy) e SSHCOM. E sebbene originato su Windows, è stato anche portato su Unix e la versione Unix puttygenè un programma a riga di comando (non GUI); vedi ad esempio linux.die.net/man/1/puttygen
dave_thompson_085
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.