SSH & Keys
PPK to PEM Converter
Convert PPK to PEM
PPK passphraseif encrypted
How to Use This Tool
Moving from Windows/PuTTY to Linux, macOS, or AWS? Here's how to convert your key in 4 easy steps.
Open PuTTYgen on Windows, load your existing key or export it. You'll find .ppk files created by PuTTY or downloaded from cloud dashboards.
Paste the PPK content directly into the text area, or use the Upload tab to select the .ppk file from your machine.
Click "Convert to PEM". If your key is passphrase-protected, enter it when prompted. The conversion runs server-side and the key is never stored.
Download the PEM file. Use it with OpenSSH: ssh -i key.pem user@host. For AWS EC2, set permissions with chmod 400 key.pem first.
Learn more
Guides & explainers related to this tool
Tool features
PPK to PEM conversion
Passphrase preserved
PPK v2 and v3
Format validation
What PPK to PEM conversion does & how it works
A PPK file is PuTTY's own private-key container. It works well inside PuTTY, Pageant and WinSCP, but nothing else reads it — ssh, scp, rsync, git, Ansible, and every cloud console expect the OpenSSH/PEM form instead. Moving a key off Windows almost always means converting it first.
The conversion is lossless and does not touch the key material, so the public key and fingerprint are identical afterwards. Any server that already trusts the key continues to accept it — you are changing the file on your side only, not the credential the server knows about.
PuTTY-User-Key-File- followed by a version number.~/.ssh/, starting -----BEGIN …PRIVATE KEY-----.How to use this tool
.ppk. A valid file starts with PuTTY-User-Key-File-2 or -3.~/.ssh/, then run chmod 600 on it — OpenSSH refuses keys with permissions that let other users read them.Frequently asked questions
ssh, scp, git, Ansible, and the SSH support built into most CI systems — only read PEM/OpenSSH keys and will not recognise a PPK no matter where you put it. Converting produces a file those tools accept.authorized_keys entry keeps working and there is nothing to update on the server.chmod 600 ~/.ssh/your-key and chmod 700 ~/.ssh — OpenSSH deliberately refuses a private key that is group- or world-readable, and the "UNPROTECTED PRIVATE KEY FILE" warning is easy to miss in a wall of output..pub, and needs no conversion. To derive the public key from the converted PEM, run ssh-keygen -y -f key.pem > key.pem.pub.ssh-agent with ssh-add so you only type it once per session.puttygen, which requires a file path — so the key is written to a temporary file, converted, and unlinked immediately afterwards. It does cross the network, so prefer this for test and lab keys. To keep a production key entirely on your machine, convert locally with puttygen key.ppk -O private-openssh -o key.pem, or PuTTYgen's Conversions → Export OpenSSH key on Windows.