2012-04-20 45 views
2

這是問題。我是用我的腳本直接過(從我的Windows桌面 < =(遠程登錄)=>到設備)的telnet連接連接到設備。基本上,我的腳本在TL1中運行一些命令,捕獲輸出並根據參數值繼續執行...非常簡單。通過客戶端/服務器之間的現有SSH連接從服務器telnet到設備

此裝置將是安裝另一個網絡,這是我不能再通過telnet直接到達上。現在,我必須在特定服務器上啓動ssh連接,然後從那裏啓動telnet會話。 (從我的Windows桌面 < =(SSH)=>服務器 < =(遠程登錄)=>到設備

我理解的paramiko的基本...我發現代碼上jessenoler網站:

import paramiko 
ssh.connect('127.0.0.1', username='jesse', password='lol') 
stdin, stdout, stderr = ssh.exec_command("uptime") 
type(stdin) 
stdout.readlines() 
# output: 
# ['13:35 up 11 days, 3:13, 4 users, load averages: 0.14 0.18 0.16\n'] 

我想不通我怎麼會從服務器發起一個telnet ...我應該使用:

ssh.exec_command("telnet 10.10.10.10 10001") 

我知道解決我的問題最簡單的方法是在服務器上安裝python,但我不能。有人遇到過這樣的問題嗎?感謝您的輸入! :)

+0

,將建立一個telnet連接到設備上,真正的。但它只會在設備和服務器之間進行,而不是從腳本中輕鬆訪問。我會在桌面和服務器之間創建一個SSH隧道(使用ssh -L),並使用telnetlib模塊直接通過桌面telnet到設備。 – ch3ka 2012-04-20 17:18:50

+0

嗨ch3ka,感謝您的輸入!以前從未這樣做過。我想我必須在服務器端做前進。或者我只能在桌面上啓動ssl -L?我有點困惑。我會繼續閱讀有關轉發。 – oliver 2012-04-20 20:16:14

回答

2

,您應該設置一個SSH隧道,而不是打開一個正常的連接。這可以通過-L localport:server:remoteport的客戶端命令行完成,也可以使用paramiko從python完成。

看看this answerlinked gist有關如何使用Python做到這一點的詳細信息。

當你設置這件事,你應該通過telnet連接到localhost指定爲將localPort端口上。

+0

感謝您的意見! – oliver 2012-05-02 01:30:30

相關問題