命令git ls-remote在Bitbucket上超时,git clone工作

时间:2014-07-14 14:44:10

标签: git ssh capistrano bitbucket

我正在尝试使用Capistrano设置自动部署配置,但是当Capistrano尝试运行命令时我一直都会遇到失败

git ls-remote -h git@bitbucket.org:vendor/repo.git

该用户的SSH密钥在Bitbucket中正确设置,因为我可以git clone git@bitbucket.org:vendor/repo.git在该服务器内对该用户没有任何问题。

我还测试了临时服务器外的命令ls-remote,在我每天使用Git的普通开发机器中,我发现它在Bitbucket上也不起作用 (我的开发机器中的SSH密钥显然已设置并正常工作)。

实际输出是:

git ls-remote -h ssh://git@bitbucket.org/vendor/repo.git
ssh: connect to host bitbucket.org port 22: Operation timed out
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.

虽然我可以pushpull在这些目录上没有任何问题。

Bitbucket上的ls-remote命令怎么了?我是否应该在常规配置之外进行一些额外的配置才能使其正常工作?

1 个答案:

答案 0 :(得分:7)

正如here所解释的那样,我要做的是将我的私钥添加到身份验证代理中。首先,启动身份验证代理:

$ eval `ssh-agent -s`

列出可用的键:

$ ssh-add -l
The agent has no identities.

添加新密钥:

$ ssh-add ~/.ssh/identity

其中identity是私钥文件,例如id_rsa。从现在开始,git ls-remote命令开始正常工作。