0

嗨,我net:sshcontroller. 我可能会host name在建立连接时动态更改。但是当它第一次登录时,shell 可能会询问是否连接。由于我通过网络连接到它,我看不到任何弹出窗口询问我。因此,我阅读了 https://groups.google.com/group/comp.lang.tcl/browse_thread/thread/ca0cd6ec905eb702 并且我想"-oStrictHostKeyChecking=no"在连接到主机时添加此标签。正如我们所知,以下是 rails 中 net::ssh 的标准格式

     @HOST = 'hostname'
     @USER = 'username'
     @PASS = 'password'

     Net::SSH.start( @HOST, @USER, :password => @PASS ) do|ssh|

建立连接时我会在哪里传递这个额外的参数"-oStrictHostKeyChecking=no"

我已经试过了

@HOST = 'hostname -oStrictHostKeyChecking=no'

但它不起作用。请帮忙

4

1 回答 1

0

您可以使用 ruby​​ 的 begin/rescue 如下所示,它将通过记住主机并重试连接来处理主机密钥不匹配。

begin
  Net::SSH.start(@host, @user, :password => @pass) do |ssh|
    ... #what ever you want to do
  end
rescue Net::SSH::HostKeyMismatch => e
  e.remember_host!
  retry
end
于 2013-05-27T01:49:33.223 回答