【发布时间】:2017-08-04 01:25:51
【问题描述】:
我正在尝试使用 Visual Studio 2017 中的 SSH 连接到 Git 存储库(在 Bitbucket 上)(据我所知,它支持 Git 的 SSH)。我已经设置好所有东西,在我的计算机上克隆了存储库,我可以提交,但是如果我尝试执行诸如获取它之类的操作,则会失败并显示以下消息(来自 Visual Studio 的“输出”窗口):
Error encountered while fetching: Git failed with a fatal error.
fatal: Could not read from remote repository.
在命令提示符下尝试,我得到了这些信息略多的消息:
Permission denied (publickey).
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
从 Git Bash 我尝试打开 SSH 代理,添加我的私钥并获取,它似乎可以工作(或者至少我没有收到任何消息,这与代理未启动或密钥未启动时不同添加):
eval `ssh-agent`
ssh-add ~/.ssh/xxxx
git fetch
但 Visual Studio 仍然无法连接。我也尝试在 Windows 命令提示符下做同样的事情:
ssh-agent
set SSH_AUTH_SOCK=/tmp/ssh-SIAryCa61iz9/agent.11128
set SSH_AGENT_PID=9804
ssh-add xxxx
git fetch
但我仍然遇到同样的错误。
我已经将公钥添加到 Bitbucket,ssh -T git@bitbucket.org 确实输出“以 xxxx 身份登录”。此外,我可以使用 SourceTree 正确连接并将私钥添加到 Pageant(我用于 ssh-add 的密钥具有所需的 OpenSSH 格式,我是从 .ppk 格式创建的)。
【问题讨论】:
-
我正在使用 VS2017 Com。对于 Mac 并有同样的问题。尝试了以下的 Mac 版本,没有。
-
总的来说,通过 SSH 连接到 Bitbucket 是个坏主意,因为没有直接的解决方案。更简单的方法是获取 Bitbucket 令牌,将其存储在 Windows 凭据管理器中,然后使用 HTTPS 链接访问您的存储库。如果您有兴趣,我可以写一个完整的答案...
标签: git ssh visual-studio-2017