A SSH private key as generated by ssh-keygen
contains a public key part. How do I retrieve this public key from the private key? I've lost my public key and need to put the contents of this public key in the servers authorized_keys
file and do not want to create a new key pair.
Alternatively phrased: how do I create the id_rsa.pub
file from a id_rsa
file?
Best Answer
I've found the answer on Server Fault: Create a public SSH key from the private key?
The option
-y
outputs the public key:As a side note, the comment of the public key is lost. I've had a site which required the comment (Launchpad?), so you need to edit
~/.ssh/id_rsa.pub
and append a comment to the first line with a space between the comment and key data. An example public key is shown truncated below.For keys that were added to the SSH Agent (a program that runs in the background and avoids the need for re-entering the keyfile passphrase over and over again), you can use the
ssh-add -L
command to list the public keys for keys that were added to the agent (viassh-add -l
). This is useful when the SSH key is stored on a smart card (and access to the private key file is not possible).