What you're seeing
An error as soon as a program tries to load your .ppk file:
Unable to load key file "C:\Users\you\keys\server.ppk"
(PuTTY key format too new)The exact wrapper varies by program: PuTTY shows a fatal error dialog, Pageant and PuTTYgen say Couldn't load private key, WinSCP and FileZilla show it in their login error. The parenthetical (PuTTY key format too new) is the same everywhere, and so is the cause.
Despite the wording, nothing is wrong with the key. The file is valid; the program reading it is too old to know the format.
What's causing this error
PuTTY private keys (.ppk) have a version number. PuTTYgen 0.75, released in May 2021, introduced PPK version 3 and made it the default for every key it saves. Version 3 protects the passphrase with Argon2, a modern memory-hard function that's far more expensive to brute-force than v2's older key derivation. That's the whole difference in practice: same key material, stronger wrapping.
Any program built on pre-0.75 PuTTY code only knows version 2, so a v3 file is "too new" for it. The usual suspects:
- An old PuTTY or Pageant installed years ago and never updated.
- An old WinSCP (v3 support arrived in 5.20) or FileZilla (3.66).
- Old putty-tools on a Linux box or CI runner, where
puttygenfrom a dated distro package chokes on keys made on an up-to-date desktop. - A teammate or vendor tool that bundles its own ancient PuTTY code.
How to fix it
Step 1: Update the program that's complaining
The clean fix. Current versions of everything read v3:
- PuTTY: install the latest from our PuTTY download page. Anything 0.75 or newer reads v3; as of 2026 the current release is well past that.
- WinSCP: update to 5.20 or newer.
- FileZilla: update to 3.66 or newer.
- putty-tools on Linux:
sudo apt install putty-tools(or your distro's equivalent) on a current release gets you a v3-capableputtygen.
Updating also removes the temptation to keep v2 keys around forever.
Step 2: Or re-save the key as PPK version 2
If you can't update (locked-down machine, an appliance that embeds old PuTTY code), downgrade the file instead. In PuTTYgen, on any machine with a current version:
- File → Load private key, select the
.ppk, enter the passphrase. - Key → Parameters for saving key files...
- Set PPK file version to 2.
- Save private key (save as a new file, e.g.
server-v2.ppk, so you keep the v3 original).
Or from the command line:
puttygen key.ppk -O private --ppk-param version=2 -o key-v2.ppkThe server can't tell the difference; PPK versions only change how the file is stored on disk. The one real cost: a passphrase on a v2 file gets the weaker pre-Argon2 protection, so treat v2 as a compatibility fallback, not the default.
Step 3: Or generate a fresh key in the version you need
Setting up a key from scratch for an old client? Our PuTTY key generator has a v2/v3 toggle, so you can produce a v2 .ppk directly instead of converting afterwards. Install the public key on the server as usual.
Common edge cases
| Situation | What's actually wrong |
|---|---|
| WinSCP fails, PuTTY works | WinSCP is older than 5.20 while PuTTY is current. Update WinSCP or feed it a v2 copy |
| FileZilla fails with the same key | FileZilla before 3.66 reads only v2. Update it or use a v2 copy |
| MobaXterm can't load the key | Older MobaXterm bundles pre-0.75 PuTTY code. Update it, or import a v2 copy |
Pageant says Couldn't load private key | Pageant is versioned with PuTTY. If PuTTY got updated but an old Pageant still autostarts, replace that copy too |
| Works on your desktop, fails in CI | The runner's putty-tools package is outdated. Update it, or commit to v2 keys for that pipeline |
puttygen on Linux rejects the key | Same as CI: distro package predates 0.75. On current Debian/Ubuntu, sudo apt install putty-tools is enough |
You don't know which version a .ppk is | Open it in a text editor: the first line is PuTTY-User-Key-File-3: or PuTTY-User-Key-File-2: |
Error says unable to use key file, no "too new" | Different problem: the file isn't a readable .ppk at all. See PuTTY Unable To Use Key File |