How To Use Putty with an SSH Private Key Generated by OpenSSH

I have access to a remote server where I am only allowed to login via SSH with a key, and I can’t add an extra key by myself, as described in “No Password SSH” post. The private key (RSA) has been generated with ssh-keygen in Linux, and I can login from Linux without issue.

This morning, I wanted to do the same with Putty in Windows XP, so I just copied the private key to Windows and loaded it in Putty, but it failed:


After a few minutes of research, I found my answer on UbuntuForums, and the reason it fails is because Putty does not support openssh keys, but uses its own format.

Here’s what I had to do:

  1. Convert OpenSSH private key to Putty private key with Putty Key Generator (puttygen)
    Start puttygen, and click on Conversions->Import key, then click Browse and select the private key generated with openssh (e.g. id_rsa).
    Then click on Save private key (e.g. id_rsa_putty.ppk)
  2. Putty SSH login with private key.
    Now you can start Putty, enter the machine IP address or url as usual, then go to Connection->SSH->Auth.
    Click Browse, and select your private key file (e.g. id_rsa_putty.ppk), go back to Session and save the session. You should now be able to login to the server.
Share this:

Support CNX Software! Donate via PayPal or cryptocurrencies, become a Patron on Patreon, or buy review samples

25 Replies to “How To Use Putty with an SSH Private Key Generated by OpenSSH”

  1. Hello and thank you for the step by step guide. I have an issue, though, just at the beggining. When importing the key with puttygen I get an error message “Couldn’t load private key (unexpected end of file)” and cannot continue past that point. Any ideas regarding this error? Than you in advance!

  2. Nevermind, I just resolved it. I think the problem was that the key file name was not standard (I’m not sure yet)

  3. It did not work for me, i did all the same steps given above to connect to my remote server.
    I am getting exception as “server refused our key “. Any suggestion is welcome.

  4. Thanks guys. I have a id_rsa generated on linux machine and have to use it on windows machine using psftp of putty. I followed your conversion and everything is ok now. Thanks

  5. Fantastic, that’s a really nasty gotcha. You’d think putty could do some validation of the key on the local machine and spit back a more useful error. Oh well, thanks again for the help!

  6. Hey i tried with ur solution now i m getting another error like server refused the key can you help me how to solve this error and connect to server?

  7. Hi everyone. For those getting “server refused” errors, the second step to this process, at least on Ubuntu on Digital Ocean, is that your server needs to have the PUBLIC part of the key pasted into a file called authorized_keys which is located in the ~/.ssh/ folder. The whole key needs to go on first line and only be one line long. Finally, success!

  8. Since I didn’t see any mention of it here you can also do this from the command line on a linux system if you have putty built. If you’re trying to convert an openssh key to a putty compatible key:

    Will convert the file id_rsa_openssh to a putty compatible key id_rsa_putty. You’ll need to replace the file names (id_rsa_openssh and id_rsa_putty) to match the files you’re trying to convert. If id_rsa_putty exists it will be overwritten with the converted key.

Leave a Reply

Your email address will not be published.

Advertisement
Advertisement