I recently got a PuTTY private key sent to me that I wanted to use to log into a remote server. But, I run OpenSSH, not PuTTY.
Here are the steps to convert the PuTTY private key to an OpenSSH private & public key.
Install puttygen
There’s a CLI tool to help with the conversion, it’s available on most Linux distro’s and Mac.
For Linux:
$ apt-get install putty-tools
$ yum install putty
On Mac:
$ brew install putty
On Mac, I ran into the error that PuTTY isn’t compatible with pssh
, so I had to run brew unlink pssh
first.
Now you have a utility puttygen
available.
Converting the private key from PuTTY to OpenSSH
With your private key at hand, now run the following commands.
$ puttygen putty.ppk -O private-openssh -o ~/.ssh/id_putty
$ puttygen putty.ppk -O public-openssh -o ~/.ssh/id_putty.pub
$ chmod 0600 ~/.ssh/id_putty
$ chmod 0666 ~/.ssh/id_putty.pub
You can put these files in your ~/.ssh
folder to easily refer to them when you SSH into a machine.
$ ssh user@ip -i ~/.ssh/id_putty
With the -i
flag you pass along the identity you want to use to authenticate, in this case we refer to the newly created private key.