2012-06-29 37 views
0

嗨,我有一个net:ssh连接controller。我可能会在建立连接时动态更改host name。但是当它第一次登录时,shell可能会询问是否连接。由于iam通过网络连接到它,我看不到任何弹出窗口询问我。 因此我读 https://groups.google.com/group/comp.lang.tcl/browse_thread/thread/ca0cd6ec905eb702 ,我想在连接到主机时添加"-oStrictHostKeyChecking=no"此标签。 我们知道下面的是净的标准格式:: SSH在轨ruby​​ on rails net ssh strickhostkeychecking = no

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

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

哪里,我会通过这个额外的参数"-oStrictHostKeyChecking=no"而建立连接?

我已经尝试过

@HOST = 'hostname -oStrictHostKeyChecking=no' 

但它不工作。 请帮忙

回答

0

你可能会像以下那样使用ruby的开始/解救,它会通过记住主机并重试连接来处理主机密钥不匹配。

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