首页 文章

SSHKit ::亚军:: ExecuteError

提问于
浏览
17

$ 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#这里我们可以执行任何操作,例如:#instart_path内执行#cute:rake,'cache :clear'#end end end end set:ssh_options,{forward_agent:true,paranoid:true,keys:“〜/ .ssh / id_rsa”}

production.rb set:stage,:staging set:rails_env,:production role:app,%w role:web,%w role:db,%w server'sakura',user: 'Psara',角色:%w ,my_property:>:my_value set:ssh_options,{keys:%w(〜/ .ssh / id_rsa),forward_agent:false,}

I would be glad, if you could teach me what I can do to solve this problem.

I have already added a public key on the bitbucket, but it doesn't work.

SSH agent forwarding report

[success] repo_url设置ok [success] ssh私钥文件存在[success] ssh-agent进程似乎在本地运行[success] ssh-agent进程通过ssh-add命令识别[success] ssh私钥添加到ssh-代理[success]应用程序存储库可从本地机器访问[success]所有主机使用无密码登录[success] forward_agent确定所有主机[成功] ssh代理成功转发到远程主机[success]应用程序存储库可从远程主机访问似乎SSH代理转发设置正确!您可以继续部署过程 . 它在所有测试中都成功了,但仍然会出现同样的错误 .

2 回答

  • 47

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

    eval `ssh-agent`
    ssh-add ~/.ssh/id_rsa
    

    有关ssh-forwarding的更多信息,您可以find here .

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

    更新:

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

  • 3

    正如回溯所说,这可能与ssh公钥有关 . 我建议使用capistrano-ssh-doctor解决问题 . 您将获得一份报告,准确说明设置中出了什么问题 .

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

相关问题