Capistrano 3 - 拒绝访问生产服务器上的git存储库

时间:2013-11-20 18:09:14

标签: ruby-on-rails deployment ssh capistrano bitbucket

我想在一个新项目上尝试更新版本的Capistrano 3,并且几天来一直在努力解决这个问题。

第一次运行“上限生产部署”时,我总是遇到同样的错误(日期:http://pastebin.com/DKvzRTc2)。

显然,它无法在服务器上运行此命令“git ls-remote git@bitbucket.org:......”

我已经尝试了一切: - forward_agent在本地计算机上使用ssh键设置为true并上传到bitbucket - forward_agent设置为false并在生产服务器上手动上传ssh密钥(当我在服务器上手动运行'git ls-remote@bitbucket.org:......'时,它运行正常。

我已经在deploy.rb文件中设置了“user”属性,这不能解决问题。

感谢您的帮助,我愿意接受任何建议!

2 个答案:

答案 0 :(得分:2)

对于那些遇到同样问题的人,我的解决方案是从ssh-agent(ssh-add -d path / to / all / keys)中删除所有SSH密钥,然后重新添加密钥(ssh-add) yourkey)。

我不知道为什么,但似乎Capistrano 3只考虑你的ssh-agent的第一个密钥,并使用该密钥访问你的git存储库。

因此,如果您的第一个密钥不是您的项目SSH密钥,那么它将抛出异常错误。

我没有找到任何其他方法来修复它。

答案 1 :(得分:0)

我有类似的问题。原来它试图从/ tmp运行脚本。 我在/ tmp目录中没有执行权限。我添加了

  

设置:tmp_dir,'/ home / _user_home_dir / tmp'

到staging.rb文件。

它没有遇到任何问题。