Capistrano Net::SSH.start 弃用警告

Capistrano Net::SSH.start deprecating watning

刚刚升级到最新的 capistrano,我的 rails 部署都在打印这个警告 -

/home/vivek/.rvm/gems/ruby-2.4.1/gems/sshkit-1.14.0/lib/sshkit/backends/connection_pool.rb:59:in `call': Passing nil, or [nil] to Net::SSH.start is deprecated for keys: user

似乎一切正常。

我从 3.5.0 升级到当前版本 (3.91.)。 deploy.rb有什么需要改的吗?

例如在声明您的服务器时config/deploy/production.rb,确保明确设置用户名。我的猜测是您没有指定,因此出现警告。

例如:

server "example.com", user: "deploy", roles: %w[app web]

您可以测试用户名是否被 运行 接受:

$ cap production doctor:servers

Servers (1)

    deploy@example.com [:app, :web]

每个服务器的用户名也可以通过 :ssh_options 全局覆盖。如果您设置 :ssh_options,请确保这些选项不包含 user: nil.

之类的内容

您可以通过运行检查:ssh_options的值:

$ cap production doctor:variables