Let's suppose I have a SSH key, but I've deleted the public key part. I have the private key part. Is there some way I can regenerate the public key part?
Asked
Active
Viewed 2.3e+01k times
2 Answers
408
Use the -y option to ssh-keygen:
ssh-keygen -f ~/.ssh/id_rsa -y > ~/.ssh/id_rsa.pub
From the 'man ssh-keygen'
-y This option will read a private OpenSSH format file and print an
OpenSSH public key to stdout.
Specify the private key with the -f option, yours might be dsa instead of rsa. The name of your private key probably contains which you used. The newly generated public key should be the same as the one you generated before.
Kyle Brandt
- 84,369
9
Solution is specifically for users using Windows
Tool Used:
- Puttygen (PuTTY Key Generator)
- WinSCP
Steps to perform:
- Open PuTTY Key Generator.
- Load your private key (
*.ppkfile). - Copy your public key data from the "Public key for pasting into OpenSSH authorized_keys file" section of the PuTTY Key Generator and paste the key data to the "authorized_keys" file (using notepad) if you want to use it.
Snapshot showing portions of Puttygen to focus:
JonathanDavidArndt
- 1,424
devprashant
- 191
-
Further reading: http://askubuntu.com/questions/53553/how-do-i-retrieve-the-public-key-from-a-ssh-private-key/700275#700275 – devprashant Nov 21 '15 at 10:07
-
Puttygen can also 'import' OpenSSH (really OpenSSL-legacy) and SSHCOM format privatekeys. And although originated on Windows, it has also been ported to Unix, and the Unix version of
puttygenis a commandline (not GUI) program; see e.g. https://linux.die.net/man/1/puttygen – dave_thompson_085 Sep 06 '18 at 06:28 -

ssh-keygen -f ~/.ssh/id_rsa -y -N "$PASSWORD" > ~/.ssh/id_rsa.pub– ken Oct 07 '14 at 12:28export, other processes cannot see the variable. And you can useread -s PASSWORDto enter it without storing in shell history. – kubanczyk Nov 21 '15 at 10:01