AmazonAWSで実行されている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 [email protected]: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 [email protected]: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)
ここで何が起こったのですか?問題を探すことからどこから始めますか?
問題は宝石です
net-ssh
最後のバージョン(2.8.0)でこの問題が発生します。解決策はそれをアンインストールすることです:
gem uninstall net-ssh -v 2.8.0
次に、Gemfileに以前のバージョンを追加します。
gem "net-ssh", "~> 2.7.0"
それでおしまい。
Capistrano Net :: SSH :: AuthenticationFailedを使用してデプロイしているときに同じ問題が発生しました:ユーザーdeployer @IPの認証に失敗しました
ssh-copy-id deployer@ip
これにより、サーバーにキーが追加され、パスワードなしでログインできます。
Deploy.rbのcapistrano2の場合
:ssh_options, { config: false}
:ssh_options, { config: false, number_of_password_prompts: 0 }
Net-ssh 2.8.0をアンインストールした後、gemfile.lockからも削除します。それは継続的に大丈夫です。
古いnet-sshを削除し、以下のように更新してインストールするか、これをgemファイルに追加するか、2.9.2バージョンを指定して環境にインストールしてください。
gem 'net-ssh', '~> 2.9.2'
それは私のために働きます。