SSHKit ::亚军:: ExecuteError

Shi*_*chi 17 ruby-on-rails bitbucket capistrano3

$ bundle exec cap production deploy

(Backtrace仅限于导入任务)上限中止!
SSHKit :: Runner :: ExecuteError:
执行Psara @ sakura时出现异常:git退出状态:128 git stdout:没有写入git stderr:Permission denied(publickey).
致命:远程端意外挂断

SSHKit :: Command :: Failed:
git退出状态:128
git stdout:没有写任何
git stderr:Permission denied(publickey).
致命:远程端意外挂断

任务:TOP => git:check(通过--trace运行任务查看完整跟踪)部署失败并显示错误:
执行Psara @ sakura时出现 异常:
git退出状态:128 git stdout:没有写
git stderr:Permission denied(publickey).

致命:远程端意外挂断

*

deploy.rb

set:application,'
Psara'set:repo_url,'git @ bitbucket.org:CBLaughter/psara.git'set
:deploy_to,'/ home/Psara/Psara'set
:default_run_options,:pty => true

namespace:deploy do

after:restart,:clear_cache do on roles(:web),in :: groups,limit:3,wait:10 do#这里我们可以做任何事情,例如:#inplace_path do #execute:rake,'cache:clear' #end end end

结束

set:ssh_options,{forward_agent:true,paranoid:true,keys:"〜/ .ssh/id_rsa"}

*

production.rb

set:stage,:staging
set:rails_env,:production

角色:app,%w {sakura}
角色:web,%w {sakura}
角色:db,%w {sakura}

服务器'sakura',用户:'Psara',角色:%w {web app},my_property:>:my_value

set:ssh_options,{
keys:%w(〜/ .ssh/id_rsa),
forward_agent:false,}



我很高兴,如果你能教我如何解决这个问题.

我已经在bitbucket上添加了一个公钥,但它不起作用.

*

SSH代理转发报告


  1. [成功] repo_url设置好

  2. [success] ssh私钥文件存在

  3. [success] ssh-agent进程似乎在本地运行

  4. [成功] ssh-agent过程由ssh-add命令识别

  5. [success] ssh私钥添加到 ssh-agent

  6. [success]应用程序存储库可从本地机器访问

  7. [success]所有主机使用无密码登录

  8. [成功] forward_agent所有主人都可以

  9. [success] ssh代理成功转发到远程主机

  10. [success]可从远程主机访问的应用程序存储库


看来SSH代理转发设置正确!您可以继续部署过程.

它在所有测试中都成功了,但仍然会出现同样的错误.

ras*_*eep 50

确保您的计算机上运行了ssh-agent,因为您正在使用ssh转发,您的本地密钥应该能够从bitbucket访问和克隆您的repo.您可以使用以下命令运行代理:

eval `ssh-agent`
ssh-add ~/.ssh/id_rsa
Run Code Online (Sandbox Code Playgroud)

有关ssh-forwarding的更多信息,您可以在这里找到.

你应该手动检查的其他事情是你可以ssh到你的服务器(你的公钥应该添加到~/.ssh/authorized_keys服务器上),当然你可以在本地克隆你的repo(可能你可以做).

更新:

现在我已经意识到你转向生产,在这种情况下,你应该确保你的服务器上的密钥对(你必须拥有它,因为转发已关闭),能够克隆来自bitbucket的repo,你可以尝试也可以手工克隆服务器.


小智 3

正如回溯所述,这可能与 ssh 公钥有关。我建议使用capistrano-ssh-doctor来解决问题。您将收到一份报告,准确说明设置中出现的问题。

免责声明,我是插件的作者capistrano-ssh-doctor