2013-03-23 35 views
1

我想知道是否有可能使用python腳本來連接到路由器並控制接口(關閉,重新啓動無線網絡等) ssh連接。ssh連接到一個帶有python腳本的路由器

到目前爲止我寫了這些行,但仍然無效。當我查看終端時,我發現當我的腳本應該回顯路由器的密碼以完成連接時,所有內容都被阻止。我該如何糾正這個問題?

下面是幾行:

import os, urllib, urllib2, re 

def InterfaceControl(): 
    #os.system("echo training") 
    os.system("ssh -l root 192.168.2.1") 
    os.system("echo yes") 
    os.system("echo My_ROUTER_PASSWORD") 
    os.system("shutdown -r") 



def main(): 
    InterfaceControl() 


if __name__=="__main__": 
    main() 

非常感謝你提前

回答

4

您可以使用paramiko這是一個Python library,通過SSH有幾個選項,允許用戶使用身份驗證抽象遠程shell連接與rsa鍵等。這是一個示例代碼,您可以重新使用以解決您的問題:

import paramiko 

ssh = paramiko.SSHClient() 
ssh.connect('hostname', username = 'username', password = 'password') 
ssh.exec_command('ls -al') 


順便說一句,如果您從虛擬環境(virtualenv)運行您的腳本,paramiko可以很容易地添加到您的python環境。

+0

我會盡快查看並回來通知您。對不起,延遲,謝謝 – sadek 2013-03-26 11:09:36

+0

paramiko像一個魅力工作,非常感謝@ylabidi! – sadek 2013-04-28 03:41:00

+0

Paramiko的exec_command使用scp並給出「協議錯誤,不以scp開頭」錯誤。使用paramiko的invoke_shell()可能會有所幫助。這裏有一個鏈接http://stackoverflow.com/questions/30603219/executing-command-using-paramiko-on-brocade-switch – 2016-06-01 23:10:50