Capistrano 3 如何设置 SSH 端口,但仍然使用22端口?

15
我想通过一个端口(ssh在端口222上)设置对服务器的访问,但即使我在deploy.rb中设置了以下内容:

set :application, 'billing'
set :repo_url, 'git@github.com:random/stat.git'
set :keep_releases, 5
set :ssh_options, {
forward_agent: true,
port: 222
}
SSHKit.config.command_map[:rake] = "bundle exec rake" #8
SSHKit.config.command_map[:rails] = "bundle exec rails"

我仍然收到错误信息。

SSHKit::Runner::ExecuteError: Exception while executing on host IP:
Operation timed out - connect(2) for "IP" port 22

我应该如何解决这个错误?是我的做法有问题吗?

2个回答

42

我也遇到了ssh_options选项的问题。

我改用了server方法,现在看起来是这样的:

# config/deploy/production.rb
server "#{server_ip_here}", user: "deploy", roles: %w{web app db}, port: 222

是的,你说得对。在我的情况下,这是一个服务器端的问题。我不得不花一些时间调整服务器。 - Elmor
这对我来说是救命稻草。由于某种原因,当使用基于角色的语法时,上面的语法失败了,但使用您列出的一行代码却起作用了。 - Isaac Askew

2
我还提供另一个答案:
角色:Web,%w {deploy@123.456.78.9:222}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接