1

突然、CapistranoはSSHの問題を返し始めました。

**ロールバック中の[deploy:update_code]例外:Capistrano :: ConnectionError、接続に失敗しました:staging.myserver.com(Net :: SSH :: AuthenticationFailed:root)接続に失敗しました:staging.myserver.com(Net :: SSH :: AuthenticationFailed:root)

私のdeploy.rbには次のものが含まれています。

require 'capistrano/ext/multistage'

ssh_options[:forward_agent] = true
ssh_options[:keys] = ["myserver_rsa"]

set :stages, ["staging", "production"]
set :default_stage, "staging"

set :scm, "git"
set :application, "myapp"
set :repository, "git@bitbucket.org:project/myapp.git"
set :use_sudo, false
set :deploy_via, :remote_cache

そして私のconfig/deploy/staging.rbで

server 'staging.myserver.com', :app, :web, :db, primary: true

set :branch, 'staging'
set :rails_env, "staging"

set :deploy_to, "/var/rails/#{application}"
set :user, "root"
set :password, "my_triple_check_password_login"
set :domain, "staging.myserver.com"

ここに投稿する前に私が行ったテスト:

  1. ssh(ssh -v staging.myserver.com)を介してログインしてみてください=>パスワードを要求せずに正常にログインしました。(myserver_rsaキーを使用)

  2. エージェント転送=>サーバーおよびローカルで有効

  3. キーなしでssh経由でログインしてみてください:=>パスワードの入力を求められます。staging.rbからコピーして貼り付け、完全にログに記録します。

  4. サーバーのルートパスワードを変更します。=> ssh root@...経由で新しいパスワードでログインしてみてください。うまくいきました。しかし、capistranoを介して、失敗します。

  5. IRBでNetSSHスクリプトを実行してログインします。=>ログインして、hostnamebashから結果を返します。

この問題は昨日突然始まります。私は本当にこれ以上のアイデアはありません:/

まず第一に、サーバーでの変更は何もありませんでした。

ありがとう!

4

2 に答える 2

4

見つけた!

私の/etc/ssh_configルートセクションでは、次のようになりました。

Host *
     SendEnv LANG LC_*
     XAuthLocation /opt/X11/bin/xauth
     ForwardAgent yes
     PasswordAuthentication yes

ステージング環境へのセクションを作成する必要がありました。

   Host staging.myserver.com
     IdentityFile /Users/hlegius/.ssh/myserver_rsa
     ForwardAgent yes
     RSAAuthentication no
     PasswordAuthentication no

私を編集config/deploy.rbして追加します:default_run_options[:pty] = true

Aaaaaaaaそしてそれはうまくいきます!

于 2013-03-17T16:20:35.217 に答える
0

このエラーは、認証の失敗が原因です。Capistranoは、指定されたユーザー名とパスワードでデプロイサーバーに接続できません。サーバーの展開はすでに完了しており、現在は新しいサーバーに展開しています。次に、このエラーが発生しました。

新しいサーバーのパスワードを入力するように求められました。新しいサーバーのパスワードを入力しました。しかし、それはこのエラーを示しています。

ここでドメインを変更しました

set :domain, "my-new-ip-or-domain"   => my new server domain

しかし、ここで私のdeploy.rbでユーザー名を変更するのを忘れました

set :user, "my-new-username"

正しいユーザー名とパスワードを指定すると、完全に機能します。

于 2014-03-26T11:10:41.810 に答える