2013-05-02 50 views
0

我試圖用SSH和ruby連接思科交換機。問題是我需要輸入一個空的'login as',然後它會詢問我的用戶名和密碼。在膩子我喜歡這個: Putty用SSH和Ruby連接思科交換機

這裏是我如何嘗試連接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

請發佈您的代碼和錯誤消息。如果你不顯示你在做什麼,誰能幫助你? – 2013-05-03 18:56:48

+0

@amalrik馬亞我的最後一次嘗試是: CISCO = 「主機」 #進入這裏的IP地址 USER = 「operacao」 #進入用戶名在這裏 PASS = 「」 #進入密碼這裏 TN =淨:: SSH :: Telnet :: new(「Host」=> CISCO 「Timeout」=> 60,打印c} tn.cmd(「\ n#{USER}」){| c |打印c} tn.cmd(PASS){| c | print c} tn.print(「echo oi」){| c | print c} tn.close – ruda 2013-05-06 13:13:17

+0

@amalrikmaia:下一次,請在編輯註釋中提及代碼來自哪裏。使審閱者更容易看到它是一個有效的編輯。 – hammar 2013-05-06 17:42:12

回答

0

從截圖中我看到「登錄爲:」,然後「用戶名:」和「密碼」。由於我對Cisco交換機不熟悉,並且在觀看以下視頻(http://www.youtube.com/watch?feature=player_detailpage&v=3v3Iw87vEQ8#t=566s)時,爲SSH層提供了IOS用戶名和密碼。

取決於您是否可以直接從SSH請求所有憑據,或者如果您必須部分通過IOS,我應該能夠提供量身定製的解決方案。

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的唯一要求是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