Capistrano:网络无法访问错误,但可以通过 ssh 连接到服务器

Capistrano: Network unreachable error, but can ssh to server

我正在使用新服务器设置 Capistrano 3,以便我可以部署 Rails 应用程序,但目前卡住了。每当我 运行 任何 cap production 任务时,都会发生这种情况:

$ cap production deploy:setup
cap aborted!
Errno::ENETUNREACH: Network is unreachable - connect(2) for [IPv6addresshere]:22

我花了几个小时试图解决这个问题,但不确定发生了什么。我可以作为 Capistrano 使用的同一用户使用 ssh 而无需密码,因为我有授权密钥设置。此外,在远程服务器上,我可以 ssh git@github.com 正常,因为我配置了部署密钥。

有什么建议吗?

这是痕迹:

/home/awatt/.rubies/ruby-2.3.0/lib/ruby/2.3.0/socket.rb:64:in `connect'
/home/awatt/.rubies/ruby-2.3.0/lib/ruby/2.3.0/socket.rb:64:in `connect_internal'
/home/awatt/.rubies/ruby-2.3.0/lib/ruby/2.3.0/socket.rb:139:in `connect'
/home/awatt/.rubies/ruby-2.3.0/lib/ruby/2.3.0/socket.rb:636:in `block in tcp'
/home/awatt/.rubies/ruby-2.3.0/lib/ruby/2.3.0/socket.rb:231:in `each'
/home/awatt/.rubies/ruby-2.3.0/lib/ruby/2.3.0/socket.rb:231:in `foreach'
/home/awatt/.rubies/ruby-2.3.0/lib/ruby/2.3.0/socket.rb:626:in `tcp'
/home/awatt/.gem/ruby/2.3.0/gems/net-ssh-3.2.0/lib/net/ssh/transport/session.rb:70:in `initialize'
/home/awatt/.gem/ruby/2.3.0/gems/net-ssh-3.2.0/lib/net/ssh.rb:232:in `new'
/home/awatt/.gem/ruby/2.3.0/gems/net-ssh-3.2.0/lib/net/ssh.rb:232:in `start'
/home/awatt/.gem/ruby/2.3.0/gems/sshkit-1.11.2/lib/sshkit/backends/connection_pool.rb:59:in `call'
/home/awatt/.gem/ruby/2.3.0/gems/sshkit-1.11.2/lib/sshkit/backends/connection_pool.rb:59:in `with'
/home/awatt/.gem/ruby/2.3.0/gems/sshkit-1.11.2/lib/sshkit/backends/netssh.rb:155:in `with_ssh'
/home/awatt/.gem/ruby/2.3.0/gems/sshkit-1.11.2/lib/sshkit/backends/netssh.rb:108:in `execute_command'
/home/awatt/.gem/ruby/2.3.0/gems/sshkit-1.11.2/lib/sshkit/backends/abstract.rb:141:in `block in create_command_and_execute'
/home/awatt/.gem/ruby/2.3.0/gems/sshkit-1.11.2/lib/sshkit/backends/abstract.rb:141:in `tap'
/home/awatt/.gem/ruby/2.3.0/gems/sshkit-1.11.2/lib/sshkit/backends/abstract.rb:141:in `create_command_and_execute'
/home/awatt/.gem/ruby/2.3.0/gems/sshkit-1.11.2/lib/sshkit/backends/abstract.rb:55:in `test'
/home/awatt/.gem/ruby/2.3.0/gems/capistrano-rbenv-2.0.4/lib/capistrano/tasks/rbenv.rake:10:in `block (3 levels) in <top (required)>'
/home/awatt/.gem/ruby/2.3.0/gems/sshkit-1.11.2/lib/sshkit/backends/abstract.rb:29:in `instance_exec'
/home/awatt/.gem/ruby/2.3.0/gems/sshkit-1.11.2/lib/sshkit/backends/abstract.rb:29:in `run'
/home/awatt/.gem/ruby/2.3.0/gems/sshkit-1.11.2/lib/sshkit/runners/parallel.rb:12:in `block (2 levels) in execute'
Tasks: TOP => rbenv:validate

我发现我已经正确配置了我的 deploy.rb 文件但忽略了更新 deploy/production.rb,该文件的用户配置为 deploy@example.com。因此,在主配置文件中的部署步骤 运行 之后,它会根据生产设置尝试相同的步骤,但无法获得 SSH 连接。这毕竟是一件简单的事情!感谢评论的人。