"Couldn't load private key (not a private key)" 使用 PuTTYgen 将 id_rsa.pub 转换为 ppk 时

"Couldn't load private key (not a private key)" when converting id_rsa.pub to ppk using PuTTYgen

我正在我的 Windows 7 64 位上安装 Git 2.5.0(包含在最新的 docker-工具箱中)。

我尝试使用 git-bash:

重新生成新密钥
ssh-keygen -t rsa

并将新密钥保存到特定位置。尝试使用 PuTTYgen 转换为 .ppk 文件时出现错误:

Couldn't load private key (not a private key)

我的Git版本有问题吗?

这是 .pub 文件:

ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC4YN/jejgFKubJ7YBUdl18EKuxFcC2CS/Rl19u6giHIz6zP548guM22Vm1edOLHN6qh2tpJkbzN6FOtLrCUXQqQ4unBqPlAY0dU4Cvzh86TDqdWixOV3AuBGJAMmjrrGe/U3/yO1RgR1pARrl7ZpY7ma7tP/9o8rGDmbQclIULNcI5AYCjRLICgbDlawT8jRYBT33VztphLi9HzGgDtSPANGJpgRrnYcoF3ZJL4E/CC7SW33lz2S/cLsupDdjusPWJjzR8vDKCXYtBTjvNP+a5GY21Z7eQHwD0MBFdxyHCMM0rnVWMJFmNNYy0N2ho5TrJ7kUHbzz4tUfrGPdWzOqX dxx@dxx-SandBox

您显然是在向 PuTTYgen 加载 public 密钥,而不是私钥。


ssh-keygen -t rsa生成两个文件:

  • 密钥对id_rsa(包含[=36​​=]密钥和私钥):

    -----BEGIN RSA PRIVATE KEY-----
    ...
    -----END RSA PRIVATE KEY-----
    
  • public键id_rsa.pub:

    ssh-rsa ... comment
    

您无法将 id_rsa.pub 加载到 PuTTYgen。这没有意义,因为该文件不包含私钥。

您必须加载 id_rsa

我遇到了类似的问题。对于 Puttygen 6.2,错误是 "Couldn't load private key (not a private key)",对于 Puttygen 7,错误是 "Couldn't load private key (not a recognised key file format)".

事实证明,解决方案非常简单——我使用的 .pem 文件是用 UNIX 行尾 (LF) 保存的。将文件转换为 Windows 行结尾 (CR LF) 意味着 Puttygen 能够读取它。

不确定确切的问题是什么,但安装新版本的 PuttyGen 解决了它。