python入門之paramiko模塊
阿新 • • 發佈:2019-04-15
and 連接 nbsp 當前 hostname mis 目錄 port id_rsa
paramiko用於實現ssh遠程連接服務器執行相關操作。
paramiko與之依賴模塊cryptography最好版本相同,不然可能執行程序會出錯。
一、ssh連接服務器執行命令
1 import paramiko 2 3 # 創建SSH對象 4 ssh = paramiko.SSHClient() 5 # 允許連接不在know_hosts文件裏的主機,如果沒有這條,第一次連接會報錯 6 ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy()) 7 # 連接服務器 8 ssh.connect(hostname="192.168.0.102",port=22,username="root",password="123456") 9 # ssh.connect(hostname="192.168.0.102",port=22,username="root",pkey="id_rsa") 當前目錄下有密鑰文件,可以使用密鑰安全連接 10 # 執行命令,返回標準輸入,標準輸出,標準錯誤,並不是同時有結果 11 stdin,stdout,stderr = ssh.exec_command("top") 12 # 獲取命令結果,三元運算,誰有值就輸出誰 13 out,err = stdout.read(),stderr.read()14 res = out if out else err 15 print(res.decode()) 16 # 關閉連接 17 ssh.close()
二、ssh連接服務器上傳下載文件
1 import paramiko 2 3 # 建立一個連接通道 4 transport = paramiko.Transport(("192.168.0.102",22)) 5 transport.connect(username="root",password="123456") 6 # transport.connect(username="root",pkey="id_rsa") 當前目錄下有密鑰文件,可以使用密鑰安全連接7 8 # 以設定的方式開始連接 9 sftp = paramiko.SFTPClient.from_transport(transport) 10 # 上傳 11 sftp.put(‘/data/123.txt‘,‘/opt/321.txt‘) 12 # 下載 13 sftp.get(‘/data/abc.txt‘,‘cba.txt‘) 14 15 transport.close()
python入門之paramiko模塊