How to SSH to a remote server using a private key on Linux?

I have been trying to connect to a remote server using my private key file from the terminal, but it doesn't seem to work. I don't understand why. Here is how I do it:

$ ssh -i private.ppk [email protected]
Enter passphrase for key 'private.ppk':
Enter passphrase for key 'private.ppk':
Enter passphrase for key 'private.ppk':
Permission denied (publickey,gssapi-keyex,gssapi-with-mic).

My private key file has 600 mode. I am able to use PuTTY on my Linux box to connect with this private key file. What can be the problem?


Solution 1:

This is a putty key. It will not work with *nix ssh clients. You need to use PuTTYgen or similar software in order to convert your key to openssh format.

Solution 2:

openssh and PuTTY are using different key types (but you can convert between them). In PuTTYgen you need to go to Conversions->Export OpenSSH, export your private key and store it as id_rsa.

More on SO or SU.