發送命令
# -*- coding: utf-8 -*- import paramiko ''' paramiko 模塊可以用了向linux執行命令和發送接收文件 ''' #創建SSH 對象 ssh = paramiko.SSHClient() #允許連接不在know_hosts文件的主機 ssh.set_missing_host_key_policy(paramiko.AutoAddpolicy) #連接服務器 ssh.connect(hostname='16.17.101.33',port=22,username='root',password = '123') #執行命令 stdin,stdout,stderr = ssh.exec_commadn('ls') #獲取命令結果 res = stdout.read() #關閉連接 ssh.close()
發送文件:
# -*- coding: utf-8 -*- import paramiko tran = paramiko.transport(('hostname',22)) tran.connect(username='root',password='123') sftp = paramiko.SFTPClient.from_transport(tran) #將test.py 上傳至 /tmp/test_new.py sftp.put('/tmp/test.py','/tmp/test_new.py') #將遠程文件下載到本地 sftp.get('遠程文件路徑','本地路徑') tran.close()
使用秘鑰登錄:
# -*- coding: utf-8 -*- ''' 使用公鑰的方式進行用戶登錄 ''' import paramiko #這個路徑是一個本地存儲公鑰的路徑 private_key = paramiko.RSAKey.from_private_key_file('/home/root/.ssh/id_rsa') #創建SSH 對象 ssh = paramiko.SSHClient() #允許連接不在know_hosts 文件的主機 ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy()) #連接服務器 ssh.connect(hostname='16.17.101.33',port=22,username='root',pkey = private_key) #執行命令 stdin,stdout,stderr = ssh.exec_commadn('ls') #獲取命令結果 res = stdout.read() #關閉連接 ssh.close()