我需要使用 SSH 和 Ruby 连接到 Cisco 交换机。我遇到的问题是身份验证不同。使用 PuTTY 我会这样做:输入“登录身份”(任何值,不一致),然后它会询问“用户名”和“密码”,如下面的屏幕:
交换机配置中的“SSH User Authentication by Password”选项被禁用并且不能启用它。
我最后的两次尝试:
1 使用网络SSH
Net::SSH.start(CISCO, USER) do |ssh|
ssh.exec("echo hi")
end
结果:Net::SSH::AuthenticationFailed
2 使用 Net-SSH-Telnet
tn = Net::SSH::Telnet::new("Host" => CISCO,
"Timeout" => 60,
"Prompt" => /^\login as:/ )
tn.cmd("\n") { |c| print c }
tn.cmd("#{USER}\n") { |c| print c }
tn.cmd("#{PASS}\n") { |c| print c }
tn.print("echo oi") { |c| print c }
tn.close
结果:Net::SSH::AuthenticationFailed
我想我需要用服务器打开一个通道并输入登录名、用户名和密码作为命令,但每次我得到 AuthenticationFailed 错误。有什么解决办法吗?