使用SSH和Ruby连接到Cisco交换机

时间:2013-05-02 16:47:35

标签: ruby ssh switch-statement

我正在尝试使用SSH和ruby连接到思科交换机。问题是我需要输入一个空的'login as'然后它会询问我用户名和密码。在Putty我喜欢这样: 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做到这一点?

2 个答案:

答案 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