我正在尝试使用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.
虽然我可以push
和pull
在这些目录上没有任何问题。
Bitbucket上的ls-remote
命令怎么了?我是否应该在常规配置之外进行一些额外的配置才能使其正常工作?
答案 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
命令开始正常工作。