I have a production server. To login to the server I must use a .ppk file.

How to login with Ubuntu Terminal and .ppk file?

I tried this :

ssh -i location/file.ppk username@server-ip

but it is showing an error message.


You can convert a .ppk file in ubuntu with installing putty-tools. So

apt-get install putty-tools

Then youn can convert the .ppk file with puttygen to OpenSSH's format like so:

puttygen <the_key.ppk> -O private-openssh -o <new_openssh_key>.key

If you only have .ppk file then it would be useful to create a .pem file and then connect to your server using that.

In you Ubuntu computer, install putty-tools with the following command:

sudo apt-get install putty-tools

Now convert your .ppk file to .pem using the following command:

puttygen yourkey.ppk -O private-openssh -o yourkey.pem

Set the proper permission to use the .pem file with following command:

chmod 400 yourkey.pem

Now connect to your server using the below command:

ssh -i yourkey.pem serverusername@server-ip

Hope it helps.

  • 1
    Highest answer to mention .pem and permissions. – mckenzm Apr 24 '18 at 6:20

.ppk is a file format used by Windows program PuTTYgen.

You can try the following procedure published by Kaleb Pederson on StackOverflow:

puttygen supports exporting your private key to an OpenSSH compatible format. You can then use OpenSSH tools to recreate the public key.

  1. Open PuttyGen
  2. Click Load
  3. Load your private key
  4. Go to Conversions->Export OpenSSH and export your private key
  5. Copy your private key to ~/.ssh/id_dsa (or id_rsa).
  6. Create the RFC 4716 version of the public key using ssh-keygen

    ssh-keygen -e -f ~/.ssh/id_dsa > ~/.ssh/id_dsa_com.pub
  7. Convert the RFC 4716 version of the public key to the OpenSSH format:

    ssh-keygen -i -f ~/.ssh/id_dsa_com.pub > ~/.ssh/id_dsa.pub
  • You can do this "off system" if you cannot get putty-tools. – mckenzm Apr 24 '18 at 6:21

Install the putty tools, if you don`t have on Linux:

sudo apt-get install putty-tools

Generate the pem file run the following command:

puttygen keyname.ppk -O private-openssh -o keyname.pem

Place the pemkey.pem file in your ~/.ssh directory:

cp keyname.pem ~/.ssh

Set the pem file to have the proper permissions:

chmod 400 keyname.pem

Thats it.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.