Python實現ssh訪問服務器

jopen 10年前發布 | 38K 次閱讀 Python Python開發

windows下可以通過putty以ssh方式連接linux主機,但是實際使用putty會被亂碼困擾。

在這里利用python,小試牛刀,寫一個能利用ssh協議訪問服務器的例子。

1.擴展模塊:

需要從網上下載這三個擴展模塊:

PyCrypto下載地址:https://www.dlitz.net/software/pycrypto/

paramiko下載地址:http://www.lag.net/paramiko/

edssa下載地址:https://pypi.python.org/pypi/ecdsa/0.9 

上面有些軟件可能需要用svn客戶端進行下載比較方便,因為放在了github 托管了

不過很可惜 我上面那個地址下載的PyCrypto折騰半天,可能是我windows 7 x64位系統的原因,沒有成功

最后是在http://www.voidspace.org.uk/downloads/pycrypto26/這個地方找到了相應的exe文件,安裝成功了,PyCrypto挺重要,因為只有安裝成功pycrypto,才能安裝好paramiko。

這些順利完成后,用import paramiko試試,可以說明安裝成功了。

至于代碼其實也是在網上找來的,測試一下

#-- coding: utf-8 --

!/usr/bin/python

import paramiko
import threading
def ssh2(ip,username,passwd,cmd):
try:
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect(ip,22,username,passwd,timeout=5)
for m in cmd:
stdin, stdout, stderr = ssh.exec_command(m)

stdin.write("Y") #簡單交互,輸入 ‘Y’

        out = stdout.readlines()  
        #屏幕輸出  
        for o in out:  
            print o,  
    print '%s\tOK\n'%(ip)  
    ssh.close()  
except :  
    print '%s\tError\n'%(ip)  

if name=='main':
cmd = ['cal','echo hello!']#你要執行的命令列表
username = "" #用戶名
passwd = "" #密碼
threads = [] #多線程
print "Begin......" for i in range(1,254):
ip = '192.168.1.'+str(i)
a=threading.Thread(target=ssh2,args=(ip,username,passwd,cmd))
a.start() </pre>
</span>

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!