我正在尝试升级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
答案 0 :(得分:0)
解决方案位于Git for Windows FAQ's。
OpenSSH 7不再将某些DSA密钥视为安全。添加 " PubkeyAcceptedKeyTypes ssh-dss"到〜/ .ssh / config帮助。
请注意,这确实会导致密钥是否足够安全。如果这是一个问题,您可能需要为OpenSSH for Windows找到replacement。我不知道这些替代品是否仅支持SSH,或者他们是否支持像Git这样的其他软件包......
答案 1 :(得分:0)
您必须再次将ssh密钥添加到您的用户代理。
// start the ssh-agent in the background
eval $(ssh-agent -s)
// Now re-add your certificates and try to connect
ssh-add
现在应该可以了。