0

我正在尝试使用 SSH 和 ruby​​ 连接到 Cisco 交换机。问题是我需要输入一个空的“登录身份”,然后它会要求我输入用户名和密码。在腻子上,我这样做: 油灰

这是我尝试连接 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 做到这一点?

4

2 回答 2

0

从屏幕截图中,我看到“登录身份:”然后是“用户名:”和“密码”。由于我不熟悉 Cisco 交换机,当我观看以下视频 ( http://www.youtube.com/watch?feature=player_detailpage&v=3v3Iw87vEQ8#t=566s ) 时,为 SSH 层提供了用户名和密码, IOS一。

根据您是否可以直接从 SSH 请求所有凭据,或者您是否必须部分通过 IOS,我应该能够提供量身定制的解决方案。

于 2013-05-03T11:58:03.207 回答
0

我在这里找到了这个样本,希望这能给你一些方向。在运行此代码之前,请确保您运行:
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 and
net-ssh to configure a juniper router

于 2013-05-03T19:37:04.103 回答