将Git for Windows升级到版本2会导致权限被拒绝(公钥)

时间:2015-12-29 19:42:02

标签: git

我正在尝试升级Git for Windows,因为旧版本已注意到安全问题。其他软件升级也需要它。但是,当我这样做时,我总是得到Permission denied (publickey)。即使在我创建新密钥后也会发生这种情况。

由于这是Windows,我使用的是非常旧的OpenSSH for Windows。要进行升级,我必须转换为另一个软件包,并且希望避免同时复杂化。

由于Git在当前版本下正常工作,我相信密钥,存储库和环境都没问题。这个问题似乎与升级有关。

注意:虽然难以找到解决方案,但我已经解决了这个问题。我在这里发布了这个问题,以便我也可以发布解决方案。

命令序列,旧版本:

git push staging patches:master
Everything up-to-date

where git
D:\BitNami\rubystack-2.0.0-11\git\cmd\git.exe
C:\Program Files (x86)\Git\cmd\git.exe

git version
git version 1.8.5.2.msysgit.0

命令序列,新版本:

git push staging patches:master
Permission denied (publickey).
fatal: Could not read from remote repository.

where git
C:\Program Files (x86)\Git\cmd\git.exe

git version
git version 2.6.4.windows.1

2 个答案:

答案 0 :(得分:0)

解决方案位于Git for Windows FAQ's

  

OpenSSH 7不再将某些DSA密钥视为安全。添加   " PubkeyAcceptedKeyTypes ssh-dss"到〜/ .ssh / config帮助。

请注意,这确实会导致密钥是否足够安全。如果这是一个问题,您可能需要为OpenSSH for Windows找到replacement。我不知道这些替代品是否仅支持SSH,或者他们是否支持像Git这样的其他软件包......

答案 1 :(得分:0)

您必须再次将ssh密钥添加到您的用户代理。

打开git bash并运行:

// start the ssh-agent in the background
eval $(ssh-agent -s)

// Now re-add your certificates and try to connect
ssh-add

现在应该可以了。