How to convert Linux OpenSSH key to Putty format

In this article you will learn how to convert Linux OpenSSH key to format used by PuTTY. An example use case is if your coworker uses Windows and PuTTY and you use Ubuntu and you want to send them your private SSH key in the format which is ready to use with their software.

What We Are Going To Cover

Prerequisites

No. 1 Linux computer

You need a computer with Linux. This article was written for Ubuntu 22.04.

No. 2 SSH private key

You need to have your SSH private key. If you do not have one and want to create a key pair, see the following article: Generating an SSH keypair in Linux

Install putty-tools

If you do not have the putty-tools package installed, you can do it by executing the following command in the terminal:

sudo apt update && sudo apt install -y putty-tools

Convert the key pair

To convert your OpenSSH private key to the format used by PuTTY, open the terminal. After that, navigate to the folder containing your SSH private key. Often, it will be ~/.ssh

If that is the case for you, execute the following command:

cd ~/.ssh

If not, replace ~/.ssh in the above command with the appropriate path.

From inside that folder, execute the command below. If the file which is your private SSH key is not named id_rsa, replace this value with the correct name.

puttygen ./id_rsa -o id_rsa.ppk

A file called id_rsa.ppk containing your private key should appear. You can verify its existence by executing the following command:

file id_rsa.ppk

The output should start with id_rsa.ppk: PuTTY Private Key File or something similar.

That file should be ready to use for PuTTY on Windows.

Warning

An unencrypted private key file like the one we generated here should typically be stored in a secure environment and transferred only using secure means of communication as it can provide access to important pieces of infrastructure.