我生成了ssh密钥并配置了我的git和SourceTree。我可以git pull并从Git-bash做其他操作。 注意:我在.bashrc中添加了以下内容以使其正常工作。
eval `ssh-agent`
ssh-add
然而,当我尝试git pull in SourceTree时,我明白了。
git -c diff.mnemonicprefix = false -c core.quotepath = false fetch origin 权限被拒绝(公钥,密码)。致命:无法读取 远程存储库。
请确保您拥有正确的访问权限和存储库 存在。
当我尝试从Putty(windows)创建ssh-key时,它会更进一步,但是等待以下消息!
git -c diff.mnemonicprefix = false -c core.quotepath = false fetch origin 服务器的主机密钥未缓存在注册表中。你没有 保证服务器是您认为的计算机。该 服务器的rsa2密钥指纹是:
ssh-rsa 2048 0f:ee:bb:1c:6c:b4:50:0e:54:d6:e9:55:9b:38:45:df如果你 信任这个主机,输入“y”将密钥添加到PuTTY的缓存并携带 在连接上。如果你想只进行一次连接,没有 将密钥添加到缓存中,输入“n”。如果你不相信这个主人, 按Return键放弃连接。
如果我在SourceTree中打开终端(这是git-bash),它会要求我输入密码。所以,我怀疑我的.bashrc不是SourceTree的来源。还是我错过了别的什么?
答案 0 :(得分:83)
我遇到了同样的问题,我的解决方案是用我的服务器(GitLab)手动调用plink.exe:
"C:\Program Files (x86)\Atlassian\SourceTree\tools\putty\plink.exe" gitlab.com
当被问及时,请按y
,你现在应该没事了!
答案 1 :(得分:58)
答案 2 :(得分:3)
我能够通过从SSH提供商的“Putty / Plink”SSH更改为“OpenSSH”来解决问题。
Menu Tools > Options then SSHClient, select OpenSSH
答案 3 :(得分:0)
最好的解决方案是使用Putty建立连接。
在主机名上,输入你的gitlab项目ssh地址。 然后,单击“打开”进行连接。
就是这样。 SourceTree毕竟信任gitlab.com。 您可以从以下链接查看解决方案。 https://answers.atlassian.com/questions/31659457/windows-7-64bits-sourcetree-openssh-putty-git-pull-not-working