从Windows权限部署的Capistrano问题被拒绝私钥

时间:2012-06-11 17:43:48

标签: ruby-on-rails deployment github capistrano

我真的被这个部署困住了,我正在使用来自铁路广播的Ryan Bates代码与capistrano一起部署。

这是我的部署

require "bundler/capistrano"

load "config/recipes/base"
load "config/recipes/nginx"
load "config/recipes/unicorn"
load "config/recipes/postgresql"
load "config/recipes/nodejs"
load "config/recipes/rbenv"
load "config/recipes/check"

server "37.188.126.99", :web, :app, :db, primary: true

set :user, "deployer"
set :application, "TWL"
set :deploy_to, "/home/#{user}/apps/#{application}"
set :deploy_via, :remote_cache
set :use_sudo, false

set :scm, "git"
#set :repository, "git@github.com:acooperman/#{application}.git"
set :repository, "git@github.com:acooperman/TWL.git"
#set :repository, "https://github.com/acooperman/TWL.git"
set :branch, "master"

default_run_options[:pty] = true
ssh_options[:forward_agent] = true

after "deploy", "deploy:cleanup" # keep only the last 5 releases

结果如下:

    $ cap deploy:update
      * executing `deploy:update'
     ** transaction: start
      * executing `deploy:update_code'
        updating the cached checkout on all servers
        executing locally: "git ls-remote git@github.com:acooperman/TWL.git master"
    Permission denied (publickey).
    fatal: The remote end hung up unexpectedly
    *** [deploy:update_code] rolling back
      * executing "rm -rf /home/deployer/apps/TWL/releases/20120611173529; true"
        servers: ["37.188.126.99"]
    Password:
        [37.188.126.99] executing command
        command finished in 340ms
    Command git ls-remote git@github.com:acooperman/TWL.git master returned status code pid 3500 exit 128

如果我在行上交换评论

set :repository, "git@github.com:acooperman/TWL.git"
#set :repository, "https://github.com/acooperman/TWL.git"

我得到以下内容:

     * executing `deploy:update'
     ** transaction: start
      * executing `deploy:update_code'
        updating the cached checkout on all servers
        executing locally: "git ls-remote https://github.com/acooperman/TWL.git master"
    Username for 'https://github.com':
    Password for 'https://acooperman@github.com':
        command finished in 7893ms
      * executing "if [ -d /home/deployer/apps/TWL/shared/cached-copy ]; then cd /home/deployer/apps/TWL/shared/cached-copy && git
     fetch -q origin && git fetch --tags -q origin && git reset -q --hard 418c9e9b1d7b37427a76e6bf98a17722f3a9e863 && git clean -q
     -d -x -f; else git clone -q https://github.com/acooperman/TWL.git /home/deployer/apps/TWL/shared/cached-copy && cd /home/depl
    oyer/apps/TWL/shared/cached-copy && git checkout -q -b deploy 418c9e9b1d7b37427a76e6bf98a17722f3a9e863; fi"
        servers: ["37.188.126.99"]
    Password:
        [37.188.126.99] executing command
     ** [37.188.126.99 :: out] error: The requested URL returned error: 401 while accessing https://github.com/acooperman/TWL.git/
    info/refs
     **
     ** fatal: HTTP request failed
        command finished in 1590ms
    *** [deploy:update_code] rolling back
      * executing "rm -rf /home/deployer/apps/TWL/releases/20120611173441; true"
        servers: ["37.188.126.99"]
        [37.188.126.99] executing command
          command finished in 331ms
    failed: "sh -c 'if [ -d /home/deployer/apps/TWL/shared/cached-copy ]; then cd /home/deployer/apps/TWL/shared/cached-copy && gi
    t fetch -q origin && git fetch --tags -q origin && git reset -q --hard 418c9e9b1d7b37427a76e6bf98a17722f3a9e863 && git clean -
    q -d -x -f; else git clone -q https://github.com/acooperman/TWL.git /home/deployer/apps/TWL/shared/cached-copy && cd /home/dep
    loyer/apps/TWL/shared/cached-copy && git checkout -q -b deploy 418c9e9b1d7b37427a76e6bf98a17722f3a9e863; fi'" on 37.188.126.99

Git在我的新vps中工作正常,不需要密码。

我真的被困在这里,任何帮助都会受到赞赏,我对卡尼斯特拉诺来说是全新的,并且对铁杆很新,所以这确实让我感到难过。

感谢您的帮助:)

亚当

1 个答案:

答案 0 :(得分:1)

看起来您的ssh密钥不在默认位置,尝试手动设置传递给您的ssh密钥

ssh_options[:keys] = ["PATH TO SSH/id_rsa]