2012-01-04 9 views
2

GitHub自体にthis articleを含めて読んだところから、sshエージェント転送を使用して、CapistranoがGitHubに接続するために自分のプライベートid_rsa鍵を私のサーバにアップロードする必要はありませんでした。それでも、私がアップロードするまで、GitHubから「Permission denied(publickey)」と言うと、capの配備は失敗します。なぜGitHubでCapistranoを動作させるために自分の秘密鍵をサーバにアップロードしなければならなかったのですか?

私の設定について少し:私のサーバーはDreamhostの共有サーバーです。私はWindows上でmysysgit Git BashをCLIとして使用しています。私は以前に私の公開鍵をauthorized_keysにコピーすることによってDreamhostサーバへのパスワードなしのsshログインを設定しました。私は開発者からGitHubにプッシュすることができます。もう一つの症状は、私のボックスからGitHubにsshできるのですが、サーバからは上記と同じエラーが出ました。その問題を解決するために私の秘密鍵をアップロードすることについて私に知らされました。しかし、私はそれを理解するために必要ではないはずです。

は、ここに私のdeploy.rbです:

default_run_options[:pty] = true 
set :domain, "myactualdomain" 
set :user, "myusernameeverywhere" 

# source 
set :scm, :git 
set :repository, "[email protected]:#{user}/#{myreponame}.git" 
set :branch, "master" 
ssh_options[:forward_agent] = true 
set :deploy_via, :remote_cache 
set :scm_verbose, true 

# deployment 
set :use_sudo, false 
set :deploy_to, "/home/#{user}/#{domain}" 
role :web, "#{domain}" 
role :app, "#{domain}" 
role :db, "#{domain}", :primary => true 

なぜ私は私の秘密鍵をアップロードする必要がありましたか?それが必要でないところでこれを処理する方法はありますか?

答えて

1

エージェント転送は、net-ssh gemによって処理されます。 > = 1.1.0に更新しようとしましたか?

+0

これはわかりませんでしたが、net-sshのバージョン2.2.1は私のGemfile.lockにあります。 –

+0

net-ssh-gateway 1.1.0もあります(該当する場合)。 –

+1

サーバ上で転送が有効になっていますか(ssh_configのForwardAgentディレクティブ)? – Jef

関連する問題