我正在使用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,但这没有效果。
由于
答案 0 :(得分:0)
我不再使用Capifony而且无法发表评论所以我试着回答:)
首先,如果您从本地计算机(Mac)进行部署,请检查:
然后你可以在下面设置这两行。
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,这真的值得一试。