【问题标题】:Capifony forward_agent not working. Asks for GitHub password and failsCapifony forward_agent 不工作。要求输入 GitHub 密码并失败
【发布时间】:2015-10-11 18:37:07
【问题描述】:

我正在使用 capifony 将 symfony2 网络应用程序部署到 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_config 并添加

ForwardAgent yes

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

谢谢

【问题讨论】:

    标签: ruby symfony capistrano ubuntu-14.04 capifony


    【解决方案1】:

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

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

    • 您的 ssh-agent 已启动,
    • 你可以 git clone 你的 github 仓库之一
    • 您可以通过 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,这真的值得一试。

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-12-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-21
    • 2017-02-11
    • 2013-05-23
    相关资源
    最近更新 更多