0

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

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

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

也许我在脚本中设置了代理参数有问题,你能帮帮我吗?

非常感谢!!

在这里您可以找到代理参数:

CAPISTRANO V2(工作)

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")]

CAPISTRANO V3(不工作)

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')
}
4

0 回答 0