paramiko 模塊遠程管理 liunx 服務器
阿新 • • 發佈:2017-11-30
python paramiko
paramiko是用python語言寫的一個模塊,遵循SSH2協議,支持以加密和認證的方式,進行遠程服務器的連接。
由於使用的是python這樣的能夠跨平臺運行的語言,所以所有python支持的平臺,如Linux, Solaris, BSD, MacOS X, Windows等,paramiko都可以支持,因此,如果需要使用SSH從一個平臺連接到另外一個平臺,進行一系列的操作時,paramiko是最佳工具之一。
一、遠程連接服務器
方式1
import paramiko #實例化客戶端 ssh = paramiko.SSHClient() #設置默認授信列表 ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy()) # 設置連接信息 ssh.connect( hostname="192.168.10.32", port=22, username="root", password="123456" ) # 輸入遠程需要執行的命令 stdin,stdout,stderr = ssh.exec_command("ls") #stdin 需要輸入的部分 #stdout 返回輸出的部分 #stderr 錯誤部分 print (stdout.read()) ssh.close()
方式2
#coding:utf-8 import paramiko trans = paramiko.Transport(("192.168.10.32",22)) trans.connect(username="root",password="123456") ssh = paramiko.SSHClient()#實例化一個客戶端 ssh._transport = trans #設置客戶端使用該通道 shell = ssh.invoke_shell()#實例化一個shell shell.settimeout(10)#設置超時時間 shell.send("ls\n") while True: recv = shell.recv(9999) print (recv) ssh.close()
二、遠程連接服務器創建交互式的shell 終端
trans = paramiko.Transport(("192.168.10.32",22)) trans.connect(username = "root",password = "123456") #登錄前必須實例化一個客戶端 ssh = paramiko.SSHClient() ssh._transport=trans#設置客戶端使用該通道 shell = ssh.invoke_shell()#實例化一個shell shell.settimeout(0.1) #設置超時等待時間 shell.send(raw_input(">>>")+"\n") while True: try: recv = shell.recv(99999) if recv: print (recv) else: continue except: command = raw_input(">>>") shell.send(command+"\n") if command == "exit": break ssh.close()
三 、使用 paramiko 模塊上傳下載文件
#上傳文件 trans = paramiko.Transport(("192.168.10.32",22)) trans.connect(username="root",password="123456") sftp = paramiko.SFTPClient.from_transport(trans)#實例化一個文件上傳下載的客戶端 下載文件 將服務器的文件下載到本地 sftp.get("/root/11.py","aa.py") # 服務器路徑 ,本地路徑 trans.close() 上傳文件文件 將本地文件上傳到服務器上 sftp.put("404.html","/root/404.html") 本地路徑 ,服務器路徑
paramiko 模塊遠程管理 liunx 服務器