Capifony forward_agent无效。请求GitHub密码并失败

时间:2015-10-11 18:37:08

标签: ruby symfony capistrano ubuntu-14.04 capifony

我正在使用capifony将symfony2 Web应用程序部署到Ubuntu上。我在deploy.rb中有以下内容:

set :repository, "git@github.com:Username/Repo.git"
set :branch,      "develop"
set :scm_verbose, true
set :deploy_via,  :remote_cache

default_run_options[:pty] = true
set :ssh_options, {:forward_agent => true}
ssh_options[:keys] = ["/Users/myuser/Sites/file.pem"]
ssh_options[:auth_methods] = ["publickey"]

Capifony能够ssh in但是在部署期间要求输入GitHub密码。我正确输入密码但它然后给我以下身份验证失败错误:

remote: Invalid username or password
fatal: Authentication failed for 'https://UserName@github.com/UserName/Repo.git/'

我不知道为什么它要求我的Github密码,为什么它不使用代理转发到ssh到github?

我已将我的公钥从服务器添加到GitHub但我对这些密钥和本地密钥有点困惑?它转发我的本地密钥还是使用服务器?我需要设置哪些权限等?

我正在使用capifony v2.8.6 我最近不得不重新安装ruby和capifony die升级到El Capitan,这使得capifony完全无法工作。这是我的问题开始的时候。 我正在部署到Ubuntu 14.04

我已尝试在服务器上编辑/ etc / ssh / ssh_config并添加

ForwardAgent yes

然后重新启动ssh,但这没有效果。

由于

1 个答案:

答案 0 :(得分:0)

我不再使用Capifony而且无法发表评论所以我试着回答:)

首先,如果您从本地计算机(Mac)进行部署,请检查:

  • 您的ssh-agent已启动,
  • 你可以克隆一个你的github repo
  • 你可以ssh到你的Ubuntu服务器

然后你可以在下面设置这两行。

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

无需设置其他ssh_options也不需要调整ssh服务器配置,这可能会非常混乱。

其次,您可以通过在项目中创建简单的rake任务来测试ssh转发是否适用于所选环境:

namespace :ssh do desc "Check if agent forwarding is working" task :forwarding do on roles(:all) do |h| if test("env | grep SSH_AUTH_SOCK") info "Agent forwarding is up to #{h}" else error "Agent forwarding is NOT up to #{h}" end end end end

使用cap [env] ssh:forwarding

进行测试

最后,如果您最近重新安装了ruby / capifony,请尝试切换到Capistrano v3及其Symfony gem,这真的值得一试。