The PuTTY SSH client for Microsoft Windows does not use the same key format as the OpenSSH client. If you want to use PuTTY, you have to create a new SSH public and private key using the PuTTYgen tool or convert an existing OpenSSH private key.

SSH (Secure Shell) can carry out au­then­tic­a­tion using a tra­di­tion­al username and password com­bin­a­tion or by using a public and private key pair. The SSH key pair es­tab­lishes trust between the client and server, thereby removing the need for a password during au­then­tic­a­tion. While not required, the SSH private key can be encrypted with a pass­phrase for added security.

What do I need to use SSH keys with PuTTY?

  • PuTTY SSH client for Microsoft Windows
  • Remote server that is ac­cess­ible over OpenSSH

How to install PuTTY and PuTTYgen

Both PuTTY and PuTTYgen are required to convert OpenSSH keys and to connect to the server over SSH. These two tools can be down­loaded in­di­vidu­ally or, prefer­ably, as a Windows installer from the PuTTY Download Page.

Once the PuTTY Windows installer is down­loaded, double-click the ex­ecut­able file in the Download folder and follow the in­struc­tions in the in­stall­a­tion wizard. The default settings are suitable for most in­stall­a­tions. Both PuTTY and PuTTYgen should now be ac­cess­ible from the Windows Programs list.

How to use existing public and private keys

If you have an existing OpenSSH public and private key, copy the id_rsa key to your Windows desktop. This can be done by copying and pasting the contents of the file or using an SCP client such as PSCP, which is supplied with the PuTTY in­stall­a­tion package or FileZilla.

Next, launch PuTTYgen from the Windows Programs list.

  1. Click Con­ver­sions from the PuTTY Key Generator menu and select Import key.
  2. Navigate to the OpenSSH private key and click Open.
  3. In the Actions section, go to Save the generated key and select Save private key.
  4. Choose an optional pass­phrase to protect the private key.
  5. Save the private key to the desktop as ‘id_rsa.ppk’.
Image: PuTTY Key Generator
With the PuTTY Key Generator you can use already existing OpenSSH keys.

If the public key is already appended to the ‘au­thor­ized_keys’ file on the remote SSH server, connect to the server with the private key.

Otherwise, proceed by copying the public key to the server.

How to create new public and private keys

Launch PuTTYgen from the Windows Programs list and proceed with the following steps.

  1. Under Para­met­ers, locate the Number of bits in a generated key: field at the bottom of the window. Increase the number of bits to 2048 or higher.
  2. Under Actions, go to Generate a public/private key pair and click Generate.
  3. You will be in­struc­ted to move the mouse cursor around within the PuTTY Key Generator window. This acts as a ran­dom­iser when gen­er­at­ing the private key.
  4. Once the key in­form­a­tion appears, click Save private key under Actions / Save the generated key.
  5. Save the private key to the desktop as ‘id_rsa.ppk’.
  6. The public key is located in the field Public key for pasting into OpenSSH au­thor­ized_keys file: in the Key section at the top of the window.
Image: PuTTYgen
You can use the PuTTYgen tool to generate new private and public keys.

How to copy a public key to a remote server

The OpenSSH public key is located under Public key for pasting info OpenSSH au­thor­ized_keys file: in the Key section. The public key begins with ssh-rsa followed by a string of char­ac­ters.

  1. Highlight the entire public key in the PuTTY Key Generator and then copy the high­lighted text.
  2. Launch PuTTY and log into the remote server with your existing user cre­den­tials.
  3. Use your preferred text editor to create and/or open the au­thor­ized_keys file:
vi ~/.ssh/authorized_keys
  1. Paste the public key into the au­thor­ized_keys file.
ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAQBp2eUlwvehXTD3xc7jek3y41n9fO0A+TyLqfd5ZAvuqrwNcR2K7UXPVVkFmTZBes3PNnab4UkbFCki23tP6jLzJx/MufHypXprSYF3x4RFh0ZoGtRkr/J8DBKE8UiZIPUeud0bQOXztvP+pVXT+HfSnLdN62lXTxLUp9EBZhe3Eb/5nwFaKNpFg1r5NLIpREU2H6fIepi9z28rbEjDj71Z+GOKDXqYWacpbzyIzcYVrsFq8uqOIEh7QAkR9H0k4lRhKNlIANyGADCMisGWwmIiPJUIRtWkrQjUOvQgrQjtPcofuxKaWaF5NqwKCc5FDVzsysaL5IM9/gij8837QN7z rsa-key-20141103
  1. Save the file and close the text editor.
  2. Adjust the per­mis­sions of the au­thor­ized_keys file so that the file does not allow write per­mis­sions for a group.
chmod 600 ~/.ssh/authorized_keys
  1. Log out of the remote server.

How to connect to a remote server with a private key

Now it’s time to test SSH key au­then­tic­a­tion. Close the PuTTYgen tool and then launch PuTTY again.

  1. Enter the remote server Host Name or IP address under Session.
  2. Navigate to Con­nec­tion > SSH> Auth.
  3. Click Browse… under Au­then­tic­a­tion para­met­ers / Private key file for au­then­tic­a­tion.
  4. Locate the ‘id_rsa.ppk’ private key and click Open.
  5. Finally, click Open again to log into the remote server with key pair au­then­tic­a­tion.
Image: Connect to Server with Private Key
With the SSH client PuTTY you can test whether the key au­then­tic­a­tion works.
Go to Main Menu