PuttyGen Version Mismatch
PuttyGen upversioned recently with 0.75 released May 9th, 2021
New keys are Incompatible
New versions of the PuTTY tools use a new file format for SSH private keys (or rather keypairs) on disc, PPK version 3.
The new format has several benefits for encrypted keys (those with a passphrase):
It uses key stretching (with the Argon2 KDF) to make brute-force passphrase guessing harder. The hash for the MAC has been changed from the weak SHA-1 to SHA-256. Keys generated with new versions of PuTTYgen will be in the new format.
All existing PPK files, or at least the overwhelming majority, are in the PPK version 2 format, defined in the year 2001. New versions of the PuTTY tools can continue to use existing PPK key files, of course. You may want to upgrade your existing keys (which can be done by loading into a new version of PuTTYgen and re-saving, or on Unix with the --reencrypt option), but if you keep the same passphrase, that can't protect you from attacks on old copies of the key file (for instance on backup media).
Old versions of PuTTY tools can't use the new format; if they encounter a new key, they'll give error messages like 'Unable to load key file "new.ppk" (PuTTY key format too new)'. If you have a key in the new PPK version 3 format, you can use PuTTYgen to export it to the old PPK version 2 format.
It seems that the version of PuttyGen (0.74) currently shipped with TortoiseGit is out of date. This has caused a conflict between SSH keys generated with version 0.75 of PuttyGen and TortoisePlink.
Where a conflict comes in
- Generate new SSH key using PuttyGen 0.75 (Released May 9th)
- Set SSH Key to default key used by PuTTY
- Attempt to clone repository
- Error with
Unable to load key file "C:\Users\chand\Documents\SSH Keys\github_private_1.ppk" (PuTTY key format too new) fatal: Could not read from remote repository. Please make sure you have the correct access rights and the repository exists. git did not exit cleanly (exit code 128) (3015 ms @ 5/14/2021 13:54:56)
How To Resolve?
Currently, the workaround is to either use the PuttyGen 0.74 that is currently shipped, or use PuttyGen 0.75 and convert a
PPK 3 to a
How to convert to PPK 2 in PuttyGen 0.75
- Open PuTTYGen
File -> Load Private Key(Or generate new key)
Key -> Parameters for saving key files...
- Change radio button
PPK file versionto
- Save as new key, or overwrite existing
TortoiseGit Version: Release 2.12.0|