为什么我必须将我的私钥上传到我的服务器才能让Capistrano与GitHub一起工作?

时间:2012-01-04 08:56:58

标签: ruby-on-rails ssh github capistrano dreamhost

从我读过的内容,包括{GntHub本身的this article,通过使用ssh代理转发,我不需要将我的私有id_rsa密钥上传到我的服务器,以便Capistrano连接到GitHub。然而,在我上传它之前,cap部署将无法尝试从GitHub提取“Permission denied(publickey)”。

关于我的设置:我的服务器是一个共享的Dreamhost服务器。我在Windows上使用mysysgit Git Bash作为我的CLI。我以前通过将我的公钥复制到authorized_keys来设置无密码ssh登录到Dreamhost服务器。我可以从我的dev中推送到GitHub。另一个症状是我可以从我的盒子里进入GitHub,但是从服务器上它给出了与上面相同的错误。这让我想到上传我的私钥来解决问题。但是我不应该理解它。

这是我的deploy.rb:

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

# source
set :scm, :git
set :repository,  "git@github.com:#{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 个答案:

答案 0 :(得分:1)

代理转发由net-ssh gem处理。您是否尝试将其更新为> = 1.1.0?