Skip to content
GitLab
    • GitLab: the DevOps platform
    • Explore GitLab
    • Install GitLab
    • How GitLab compares
    • Get started
    • GitLab docs
    • GitLab Learn
  • Pricing
  • Talk to an expert
  • /
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
    • Switch to GitLab Next
    Projects Groups Topics Snippets
  • Register
  • Sign in
  • TortoiseGit TortoiseGit
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributor statistics
    • Graph
    • Compare revisions
    • Locked files
  • Issues 382
    • Issues 382
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 16
    • Merge requests 16
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
    • Test cases
  • Deployments
    • Deployments
    • Releases
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Code review
    • Insights
    • Issue
    • Repository
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • TortoiseGitTortoiseGit
  • TortoiseGitTortoiseGit
  • Issues
  • #3744
Closed
Open
Issue created May 14, 2021 by Chandler McCowan@ChandlerMcCowan🛠

PuttyGen Version Mismatch

PuttyGen upversioned recently with 0.75 released May 9th, 2021

New keys are Incompatible

Putty Release Notes

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

  1. Generate new SSH key using PuttyGen 0.75 (Released May 9th)
  2. Set SSH Key to default key used by PuTTY
  3. Attempt to clone repository
  4. 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 PPK 2

How to convert to PPK 2 in PuttyGen 0.75

  1. Open PuTTYGen
  2. File -> Load Private Key (Or generate new key)
  3. Key -> Parameters for saving key files...
  4. Change radio button PPK file version to 2
  5. Save as new key, or overwrite existing

TortoiseGit Version: Release 2.12.0|

To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information
Assignee
Assign to
Time tracking