Ruby Capifony转发代理不工作。请求输入GitHub密码,但失败

Ruby Capifony转发代理不工作。请求输入GitHub密码,但失败,ruby,symfony,capistrano,ubuntu-14.04,capifony,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, {:

我正在使用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登录,但在部署过程中会要求输入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\u config并添加

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


谢谢

我不再使用Capifony,也无法发表评论,所以我尝试回答:)

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

  • 您的ssh代理已启动
  • 您可以git克隆一个github repo
  • 您可以使用ssh连接到Ubuntu服务器
然后你可以把这两行放在下面


默认运行选项[:pty]=真
ssh_选项[:转发_代理]=真

无需设置其他
ssh\u选项
也无需调整ssh服务器配置,这可能会非常混乱

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


名称空间:ssh-do
描述“检查代理转发是否工作”
任务:转发
关于角色(:all)do|h|
如果测试(“env | grep SSH _AUTH _SOCK”)
信息“代理转发到#{h}”
其他的
错误“代理转发未达到#{h}”
结束
结束
结束
结束

并使用
cap[env]ssh:forwarding进行测试


最后,如果您最近重新安装了ruby/capifony,请尝试切换到Capistrano v3及其版本,这确实值得一试。

我不再使用capifony,也无法发表评论,因此我尝试回答:)

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

  • 您的ssh代理已启动
  • 您可以git克隆一个github repo
  • 您可以使用ssh连接到Ubuntu服务器
然后你可以把这两行放在下面


默认运行选项[:pty]=真
ssh_选项[:转发_代理]=真

无需设置其他
ssh\u选项
也无需调整ssh服务器配置,这可能会非常混乱

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


名称空间:ssh-do
描述“检查代理转发是否工作”
任务:转发
关于角色(:all)do|h|
如果测试(“env | grep SSH _AUTH _SOCK”)
信息“代理转发到#{h}”
其他的
错误“代理转发未达到#{h}”
结束
结束
结束
结束

并使用
cap[env]ssh:forwarding进行测试


最后,如果您最近重新安装了ruby/capifony,请尝试切换到Capistrano v3及其版本,这确实值得一试。

您好,谢谢您的建议。我已经升级到capistrano v3和symfony gem。我在这里查看身份验证文档——我对EC2.pem文件和id_rsa ssh密钥之间的区别感到有点困惑。我是否需要/可以同时使用这两个密钥?我已经根据我的capistrano 3脚本开始了一个新问题-我认为您必须将Amazon pem文件转换为常规ssk密钥,并将其添加到您的github帐户,请参阅此处了解更多详细信息嗨,谢谢您的建议。我已经升级到capistrano v3和symfony gem。我在这里查看身份验证文档——我对EC2.pem文件和id_rsa ssh密钥之间的区别感到有点困惑。我需要/可以同时使用这两种密钥吗?我已经根据我的capistrano 3脚本开始了一个新问题-我认为您必须将Amazon pem文件转换为常规ssk密钥,并将其添加到您的github帐户,请参阅此处了解更多详细信息