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
なぜ私は私の秘密鍵をアップロードする必要がありましたか?それが必要でないところでこれを処理する方法はありますか?
これはわかりませんでしたが、net-sshのバージョン2.2.1は私のGemfile.lockにあります。 –
net-ssh-gateway 1.1.0もあります(該当する場合)。 –
サーバ上で転送が有効になっていますか(ssh_configのForwardAgentディレクティブ)? – Jef