使用python的Paramiko模塊登錄SSH

使用python的Paramiko模塊登錄SSH

paramiko是用Python語言寫的一個模塊,遵循SSH2協議,支持以加密和認證的方式,進行遠程服務器的鏈接。 
python的paramiko模塊能夠方便的實現ssh登陸,並執行命令。html

1. paramiko模塊安裝

1.1安裝pycrypto庫

下載地址請戳這裏:http://download.csdn.net/detail/oatnehc/8825715python

pycrypto庫的主頁在這裏:https://www.dlitz.net/software/pycrypto/服務器

pycrypto庫安裝方法markdown

python setup.py build && python setup.py install

1.2安裝paramiko

paramiko下載地址:http://download.csdn.net/detail/oatnehc/8825743 
paramiko庫的主頁在這裏:https://pypi.python.org/pypi/paramiko 
paramiko庫的安裝方法超級簡單。多線程

python setup.py build && python setup.py install

 


2.簡單使用

2.1 執行遠程命令

#!/usr/bin/python import paramiko ssh = paramiko.SSHClient() ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy()) ssh.connect("某IP地址",22,"用戶名", "口令") stdin, stdout, stderr = ssh.exec_command("你的命令") print stdout.readlines() ssh.close()

 

2.2 上傳文件到遠程

#!/usr/bin/python import paramiko t = paramiko.Transport(("某IP地址",22)) t.connect(username = "用戶名", password = "口令") sftp = paramiko.SFTPClient.from_transport(t) remotepath='/tmp/test.txt' localpath='/tmp/test.txt' sftp.put(localpath,remotepath) t.close()

2.3 上傳文件到遠程

#!/usr/bin/python import paramiko t = paramiko.Transport(("某IP地址",22)) t.connect(username = "用戶名", password = "口令") sftp = paramiko.SFTPClient.from_transport(t) remotepath='/tmp/test.txt' localpath='/tmp/test.txt' sftp.get(remotepath, localpath) t.close()

3.高級用法

一般須要對多個服務器或者虛擬機進行管理,能夠採用批量的方式進行。ssh

#-*- 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) 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 = ['echo hello!']#須要執行的命令列表 username = "root" #用戶名 passwd = "root" #密碼 threads = [] #多線程 print "Begin excute......" for i in range(1,254): ip = '192.168.1.'+str(i) a=threading.Thread(target=ssh2,args=(ip,username,passwd,cmd)) a.start() 

參考 
http://www.cnblogs.com/xia520pi/p/3805043.html 
http://www.oschina.net/p/paramiko 
http://developer.51cto.com/art/201206/340118.htmui

相關文章
相關標籤/搜索