200
87
I know that is possible to convert .ppk under puttygen in Windows, but how to do that on Linux? Is this possible ?
200
87
I know that is possible to convert .ppk under puttygen in Windows, but how to do that on Linux? Is this possible ?
293
Do it with Putty.
Linux: with your package manager, install PuTTY (or the more minimal PuTTY-tools):
sudo apt-get install putty-tools
apt-get install putty-tools
yum install putty
emerge putty
sudo pacman -S putty
OS X: Install Homebrew, then run brew install putty
Place your keys in some directory, e.g. your home folder. Now convert the PPK keys to SSH keypairs:cache search
To generate the private key:
cd ~
puttygen id_dsa.ppk -O private-openssh -o id_dsa
and to generate the public key:
puttygen id_dsa.ppk -O public-openssh -o id_dsa.pub
Move these keys to ~/.ssh
and make sure the permissions are set to private for your private key:
mkdir -p ~/.ssh
mv -i ~/id_dsa* ~/.ssh
chmod 600 ~/.ssh/id_dsa
chmod 666 ~/.ssh/id_dsa.pub
If you have already tried to perform a 'git clone' operation you might need to do this also
chmod 666 ~/.ssh/known_hosts
40
ssh-keygen -i -f id_dsa_1024_a.pub > id_dsa_1024_a_openssh.pub
-i
flag is import from other than openssh format-f
flag means read from input fileSource: a blogpost at burnz.wordpress.com
1This worked for me with a public-key file - puttygen seems to require a private key. it's seems that all it did was rearrange the base-64 part into a single line – Jasen – 2015-03-12T03:10:23.350
2This does not seem to cover private keys, which is why I would want to do the conversion, I already have a public key saved somewhere... – Gert van den Berg – 2016-02-06T09:47:19.960
Yeah, the ppk files I've seen have had the appropriate markers, and this has worked just fine. – tylerl – 2019-09-08T21:40:55.067
19.ppk files are the full key pairs, I don't think the command above or the blog post apply to that. – Peter Becker – 2013-02-07T00:27:27.543
2I think I meant that it works if you use puttygen's "Save public key" button. ssh-keygen do not understand true .ppk files because they lack those '---- BEGIN SSH2 PUBLIC KEY ----' markers. You can find the public key in the .ppk file between lines "Public-Lines:.." and "Private-Lines:.." though. – jous – 2014-01-07T14:35:05.047
5
Get the private key:
open the .ppk file in puttygen:
puttygen ~/.ssh/id_dsa.ppk
export as openssh:
Conversions → Export OpenSSH key
Get the public key:
open like before the private key with puttygen, the public key is under public key for pasting into OpenSSH authorized_keys file
3
I prepared a Docker container to make life simpler:
docker run --rm \
--volume=/path/to/file.ppk:/tmp/id_dsa.ppk \
--volume=/path/to/output:/tmp/out/ \
czerasz/putty-tools
Where:
/path/to/file.ppk
- local path to your ppk file/path/to/output
- local path to where the private and public key should be placed1great. thx for the image! however meanwhile its --volume=/path/to/file.ppk:/tmp/id.ppk
and not id_dsa.ppk
– pHiL – 2016-10-04T16:38:21.890
hi i already have a .pub then it is need to create public key again – Amit Bera – 2014-08-20T12:19:50.067
2If you came here looking for how to do it in windows, run "puttygen yourkey.ppk", and then under the Conversions menu choose "Export OpenSSH key" to get the private key. – Ryan Shillington – 2014-09-22T16:46:20.710
1the solution from @jous is much nicer since you don't need the private key to convert a public key + you don't need to install putty – Tobi – 2015-08-19T12:55:30.680
I had to add this key to my
./ssh/config
fileHost mysite.com Hostname mysite.com IdentityFile ~/.ssh/id_dsa IdentitiesOnly yes
– vladkras – 2016-01-12T16:33:12.633Some elliptic curve formats (ECDS etc) are only available in the beta putty tools yet. – Daniel W. – 2016-03-23T10:27:47.487