我正在尝试使用SSH和ruby连接到思科交换机。问题是我需要输入一个空的'login as'然后它会询问我用户名和密码。在Putty我喜欢这样:
以下是我尝试连接NET :: SSH的方法。
CISCO = "host" #Enter the IP address here
USER = "operacao" #Enter username here
PASS = "" #Enter password here
tn = Net::SSH::Telnet::new("Host" => CISCO, "Timeout" => 60, "Prompt" => /^\login as:/ )
tn.cmd("\n") { |c| print c }
tn.cmd("\n#{USER}") { |c| print c }
tn.cmd(PASS) { |c| print c }
tn.print("echo oi") { |c| print c }
tn.close
有没有办法用Ruby做到这一点?
答案 0 :(得分:0)
从屏幕截图中我看到“登录为:”,然后是“用户名:”和“密码”。由于我不熟悉Cisco交换机,当我观看以下视频(http://www.youtube.com/watch?feature=player_detailpage&v=3v3Iw87vEQ8#t=566s)时,为SSH层提供了用户名和密码,IOS为。
根据您是否可以直接从SSH请求所有凭据,或者您必须部分通过IOS,我应该能够提供量身定制的解决方案。
答案 1 :(得分:0)
我发现这个样本here我希望这会给你一些方向。
在您运行此代码之前,请证明您运行:
gem install net-ssh
#!/usr/bin/env ruby
require 'net/ssh'
HOST = '192.168.1.113'
USER = 'username'
PASS = 'password'
Net::SSH.start( HOST, USER, :password => PASS ) do|ssh|
result = ssh.exec!('ls')
puts result
end
Net :: SSH的唯一要求是ruby的openSSL绑定,你可以检查一下是否正确:
C:\Sites>ruby -ropenssl -e 'puts OpenSSL::OPENSSL_VERSION'
OpenSSL 1.0.0k 5 Feb 2013
C:\Sites>
编辑:
我做了一些研究并找到了一些答案,我想你应该看看:
telnet to a cisco switch和
net-ssh to configure a juniper router