Capistrano は SSH キーにもかかわらず、デプロイ時にパスワードを要求します 質問する

Capistrano は SSH キーにもかかわらず、デプロイ時にパスワードを要求します 質問する

私の ssh キーは間違いなく正しく設定されているので、ssh を使用するときにパスワードを求められることはありません。しかし、 でデプロイするときに、capistrano は依然としてパスワードを要求しますcap deploy。しかし、奇妙なことに、 でセットアップしたときにはパスワードを要求されませんcap deploy:setup。パスワード プロンプトがなければ、デプロイ サイクルははるかにスムーズになります。

詳細: Sinatra アプリを Dreamhost 共有アカウント (Passenger を使用) にデプロイしています。かなり前にチュートリアルに従って実行しましたが、当時は問題なく動作していました。その後、何かが壊れてしまいました。私は capistrano (2.5.9) と git バージョン 1.6.1.1 を使用しています。これが私の Capfile です:

load 'deploy' if respond_to?(:namespace) # cap2 differentiator

set :user, 'ehsanul'
set :domain, 'jellly.com'

default_run_options[:pty] = true

# the rest should be good
set :repository,  "[email protected]:git/jellly.git"
set :deploy_to, "/home/ehsanul/jellly.com"
set :deploy_via, :remote_cache
set :scm, 'git'
set :branch, 'deploy'
set :git_shallow_clone, 1
set :scm_verbose, true
set :use_sudo, false

server domain, :app, :web

namespace :deploy do
  task :migrate do
    run "cd #{current_path}; /usr/bin/rake migrate environment=production"
  end
  task :restart do
    run "touch #{current_path}/tmp/restart.txt"
  end
end

after "deploy", "deploy:migrate"

cap deployパスワードプロンプトまで実行した場合の出力は次のとおりです。

$ cap deploy
  * executing `deploy'
  * executing `deploy:update'
 ** transaction: start
  * executing `deploy:update_code'
    updating the cached checkout on all servers
    executing locally: "git ls-remote [email protected]:git/jellly.git deploy"
/usr/local/bin/git
  * executing "if [ -d /home/ehsanul/jellly.com/shared/cached-copy ]; then cd /home/ehsanul/jellly.com/shared/cached-copy && git fetch  origin && git reset  --hard ea744c77b0b939d5355ba2dc50ef1ec85f918d66 && git clean  -d -x -f; else git clone  --depth 1 [email protected]:git/jellly.git /home/ehsanul/jellly.com/shared/cached-copy && cd /home/ehsanul/jellly.com/shared/cached-copy && git checkout  -b deploy ea744c77b0b939d5355ba2dc50ef1ec85f918d66; fi"
    servers: ["jellly.com"]
    [jellly.com] executing command
 ** [jellly.com :: out] [email protected]'s password:
Password:
 ** [jellly.com :: out]
 ** [jellly.com :: out] remote: Counting objects: 7, done.
remote: Compressing objects: 100% (4/4), done.

何が壊れる可能性があるでしょうか?

ベストアンサー1

ssh-add ~/.ssh/id_rsaローカル マシンで実行すると、問題は解決しました。Capistrano で呼び出されたときに、ssh コマンドライン ツールが私の ID を検出していなかったようです。

おすすめ記事