我想在一个新项目上尝试更新版本的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”属性,这不能解决问题。
感谢您的帮助,我愿意接受任何建议!
答案 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文件。
它没有遇到任何问题。