这是我到目前为止得到的。这很好用,问题是我无法输入 ssh 登录密码,我需要共享 ssh 密钥才能使其工作:
def ssh_conn(user, host, &block)
begin
ping_output = []
timeout(20) do
ping_output = IO.popen("ssh #{user}@#{host} 'echo \"success\"'", "w+")
end
ping = ping_output.readlines.join[/success/] ? true : false
rescue Timeout::Error
ping = false
rescue
ping = false
end
ping_output.close
if block_given? && ping
yield
end
return ping
end
这里的问题是:我怎样才能做类似的事情,但是通过传递给方法的参数输入密码?最好使用 ruby 原生类/方法而不安装任何“外部”gem。