python3.x Day6 paramiko

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()
相關文章
相關標籤/搜索