ssh key passphrase works in windows but not in linux

Jepessen picture Jepessen · Mar 9, 2012 · Viewed 18k times · Source

I'm working to a project in git. In Windows, I'm using git extensions to manage this project, and to access to the public repository they gave me a .ppk key. I load it into git extension, with the passphrase that they gave me, and it works.

Now I set a linux (ubuntu-32bit) virtual machine, and I want to access also from this machine to the repository.

From another thread that I've seen in this site, I use, to clone the repository, the following command:

ssh-agent bash -c 'ssh-add /home/myHome/mykey.ppk; git clone git@serveraddress:project.git'

Then, the shell tells me to insert the passphrase

Enter passphrase for /home/myHome/mykey.ppk:

But when I insert it, it tells me that's a bad passphrase. I've checked it a lot of times, and I'm sure that I use the same passphrase that I use in windows. So how can I use correctly the key in Linux?

Thanks in advance for your replies.

Answer

lunaryorn picture lunaryorn · Mar 9, 2012

The Linux SSH client (typically OpenSSH) can't read the PPK format used by the Windows SSH client Putty. You need to convert the "PPK" key given to you into an OpenSSH key first. Install "putty" on Linux and use the puttygen command line tool:

$ sudo aptitude install putty
$ mkdir -p ~/.ssh
$ puttygen ~/mykey.ppk -o ~/.ssh/id_rsa -O private-openssh

Enter your passphrase, and you'll get an OpenSSH-compatible key in the standard location ~/.ssh/id_rsa. Afterwards you can just use ssh-add(without any arguments!) to add this key to the SSH agent.

Alternatively you can use the PUTTYgen program provided by putty on Windows.