python3 paramiko模塊,用來進行遠程操做linux服務器,利用的就是sshpython
#利用用戶名,密碼,進行鏈接 import paramiko #建立一個SSH對象 ssh=paramiko.SSHClient() #容許鏈接不在know_hosts文件中的主機 ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy()) #鏈接一個主機 ssh.connect(hostname='192.168.1.2',port=22,username='root',password='root123') #執行命令 stdin,stdout,stderr=ssh.exec_command('df -h') #獲取執行結果 result_right=stdout.read().decode("utf-8") result_error=stderr.read().decode("utf-8") print("result_right:%s"%result_right) print("result_error:%s"%result_error) #關閉鏈接 ssh.close()
#利用私鑰,進行鏈接 import paramiko #生成ssh實例 ssh=paramiko.SSHClient() #配置私鑰,本身有個身份 pk=paramiko.RSAKey.from_private_key_file(filename="ip2_rsa_key") #容許鏈接不在know_hosts文件中的主機 ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy()) #鏈接信息,pkey就是目標服務器的私鑰,要求對方服務器有本身對應的公鑰 ssh.connect(hostname="192.168.1.8",port=22,username='root',pkey=pk) #執行命令 stdin,stdout,stderr=ssh.exec_command("df -h;ifconfig") res=stdout.read() print(res.decode("utf-8")) ssh.close()
利用paramiko,實現scp的文件上傳下載linux
import paramiko #建立scp的鏈接通道 scp_tran=paramiko.Transport(("192.168.1.2",22)) scp_tran.connect(username='root',password='root123') #把鏈接通道給SFTPClient,生成一個scp實例 scp=paramiko.SFTPClient.from_transport(scp_tran) #上傳文件 scp.put("E:\\python學習51cto\\wy_home_temp\\temp.txt","/root/temp.txt") #下載文件 scp.get("/root/temp.txt","E:\\python學習51cto\\temp.txt") #關閉鏈接 scp_tran.close()
#這是利用私鑰進行的鏈接 import paramiko #建立sftp的transport鏈接 scp_tran=paramiko.Transport(("192.168.1.8",22)) #定義python程序的一個私鑰,與目標服務器的公鑰匹配的,實際上是把當前python的私鑰公鑰對中的公鑰扔給服務器之後就匹配了 pk=paramiko.RSAKey.from_private_key_file("ip2_rsa_key") #開啓transport鏈接,建鏈 scp_tran.connect(username="root",pkey=pk) #弄一個sftp客戶端出來,進行具體的文件傳輸 scp=paramiko.SFTPClient.from_transport(scp_tran) #上傳文件 scp.put(localpath="ssh_pkey.py",remotepath="/root/ssh_pkey.py") #下載文件 scp.get(remotepath="/root/ssh_pkey.py",localpath="E:\\python學習51cto\\ttttttt") #關閉鏈接 scp_tran.close()