Amazon ec2 capistrano3权限被拒绝(使用代理)

Amazon ec2 capistrano3权限被拒绝(使用代理),amazon-ec2,proxy,capistrano,capistrano3,sshkit,Amazon Ec2,Proxy,Capistrano,Capistrano3,Sshkit,我正在尝试将capistrano v2脚本迁移到新的v3.4版本 开发阶段一切顺利:我有一个EC2实例,部署完成,没有错误 我的生产脚本有一些问题,因为我在生产服务器(也有EC2实例)之前有一个代理(EC2实例);在我的capistrano v2脚本中,一切正常,现在我使用cap-ec2+capistrano v3.4只将我的应用程序部署到标记的服务器,但当我尝试它时,我得到“权限被拒绝”,我的生产服务器拒绝我的密钥 也许我的脚本中的代理参数设置错误,你能帮我吗 非常感谢 您可以在此处找到代理参

我正在尝试将capistrano v2脚本迁移到新的v3.4版本

开发阶段一切顺利:我有一个EC2实例,部署完成,没有错误

我的生产脚本有一些问题,因为我在生产服务器(也有EC2实例)之前有一个代理(EC2实例);在我的capistrano v2脚本中,一切正常,现在我使用cap-ec2+capistrano v3.4只将我的应用程序部署到标记的服务器,但当我尝试它时,我得到“权限被拒绝”,我的生产服务器拒绝我的密钥

也许我的脚本中的代理参数设置错误,你能帮我吗

非常感谢

您可以在此处找到代理参数:

CAPISTRANO V2(工作版)

CAPISTRANO V3(不工作)


您的代理xxx.xxx.xxx.xxx服务器是否有一个部署用户,您可以使用~/.ssh/id\u rsa\u deploy\u myapp密钥ssh到该用户?您可能不需要转发代理或端口,请参阅5。是的,在代理服务器上我有一个部署用户尝试扩展您的
ssh xxx.xxx.xxx.xxx-W%h:%p
proxy命令以包括用户和密钥文件,例如
ssh-I/path/to/key\u rss@-W%h:%p
@jorgorpinel这为我解决了这个问题,谢谢!
set :gateway, "deploy@xxx.xxx.xxx.xxx"
set :ssh_options, { :forward_agent => true }
default_run_options[:pty] = true
ssh_options[:port] = "22"
ssh_options[:keys] = [File.join(ENV["HOME"], ".ssh", "id_rsa_deploy_myapp")]
require 'net/ssh/proxy/command'

set :ssh_options, {
  user: "deploy",
  keys: %w("~/.ssh/id_rsa_deploy_myapp"),
  auth_methods: %w(publickey),
  forward_agent: true,
  port: 22,
  proxy: Net::SSH::Proxy::Command.new('ssh xxx.xxx.xxx.xxx -W %h:%p')
}