Capistrano无法部署代码,因为Net :: SSH :: AuthenticationFailed:身份验证失败

use*_*621 13 ruby ssh capistrano ruby-on-rails amazon-web-services

我们有一个在Amazon AWS上运行的Rails应用程序.我们几乎每天都会推出一个新代码,连续几个月.

今天,当我尝试在那里部署新代码时,我收到了以下错误消息:

  * 2014-02-16 13:09:51 executing `deploy'
  * 2014-02-16 13:09:51 executing `deploy:update'
 ** transaction: start
  * 2014-02-16 13:09:51 executing `deploy:update_code'
    updating the cached checkout on all servers
    executing locally: "git ls-remote git@bitbucket.org:my_bitbucket_name/project_name.git master"
    command finished in 2909ms
  * executing "if [ -d /home/deployer/project_name/shared/cached-copy ]; then cd /home/deployer/project_name/shared/cached-copy && git fetch -q origin && git fetch --tags -q origin && git reset -q --hard 16958dfcee27dd9c33855ecece0013428e2c57c8 && git clean -q -d -x -f; else git clone -q -b master git@bitbucket.org:rdudacz/looky.co.git /home/deployer/looky/shared/cached-copy && cd /home/deployer/project_name/shared/cached-copy && git checkout -q -b deploy 16958dfcee27dd9c33855ecece0013428e2c57c8; fi"
    servers: ["IP"]
*** [deploy:update_code] rolling back
  * executing "rm -rf /home/deployer/project_name/releases/20140216120957; true"
    servers: ["IP"]
 ** [deploy:update_code] exception while rolling back: Capistrano::ConnectionError, connection failed for: IP (Net::SSH::AuthenticationFailed: Authentication failed for user deployer@IP)
connection failed for: IP (Net::SSH::AuthenticationFailed: Authentication failed for user deployer@IP)
Run Code Online (Sandbox Code Playgroud)

这里发生了什么?从哪里开始寻找问题?

use*_*621 23

问题是宝石

净SSH

最后一个版本(2.8.0)导致此问题.解决方案是卸载它:

gem uninstall net-ssh -v 2.8.0
Run Code Online (Sandbox Code Playgroud)

然后将Gemfile添加到以前的版本中:

gem "net-ssh", "~> 2.7.0"
Run Code Online (Sandbox Code Playgroud)

而已.


Anb*_*n p 10

使用capistrano Net :: SSH :: AuthenticationFailed进行部署时遇到了同样的问题:用户部署者@ IP的身份验证失败

ssh-copy-id deployer@ip 
Run Code Online (Sandbox Code Playgroud)

这会将您的密钥添加到服务器,您无需密码即可登录.