新聞中心
一、Paramiko模塊簡(jiǎn)介
Python Paramiko是Python編程語(yǔ)言中的SSHv2協(xié)議的實(shí)現(xiàn),支持連接SSH客戶端和服務(wù)器?;赟SH客戶端的基礎(chǔ)功能,可以在Python環(huán)境中執(zhí)行命令、傳輸文件、執(zhí)行遠(yuǎn)程代碼和控制SSH會(huì)話等。因此,Python Paramiko模塊被廣泛應(yīng)用于后臺(tái)自動(dòng)化、配置管理、網(wǎng)絡(luò)管理、系統(tǒng)測(cè)試、安全審計(jì)等領(lǐng)域。

創(chuàng)新互聯(lián)是專業(yè)的海城網(wǎng)站建設(shè)公司,海城接單;提供網(wǎng)站制作、成都網(wǎng)站建設(shè),網(wǎng)頁(yè)設(shè)計(jì),網(wǎng)站設(shè)計(jì),建網(wǎng)站,PHP網(wǎng)站建設(shè)等專業(yè)做網(wǎng)站服務(wù);采用PHP框架,可快速的進(jìn)行海城網(wǎng)站開(kāi)發(fā)網(wǎng)頁(yè)制作和功能擴(kuò)展;專業(yè)做搜索引擎喜愛(ài)的網(wǎng)站,專業(yè)的做網(wǎng)站團(tuán)隊(duì),希望更多企業(yè)前來(lái)合作!
二、安裝Paramiko模塊
如果你使用的是Python2.x版本,則需要執(zhí)行以下命令進(jìn)行安裝:
pip install paramiko如果你使用的是Python3.x版本,則需要執(zhí)行以下命令進(jìn)行安裝:
pip3 install paramiko三、Paramiko模塊基本使用
1、SSH連接對(duì)象構(gòu)建
在使用Paramiko模塊進(jìn)行SSH連接之前,需要構(gòu)建SSH連接對(duì)象。SSH連接對(duì)象是一個(gè)連接到SSH遠(yuǎn)程主機(jī)的網(wǎng)絡(luò)連接。
import paramiko
ssh = paramiko.SSHClient()
# 設(shè)置自動(dòng)添加主機(jī)名及其對(duì)應(yīng)的密鑰
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())2、SSH連接對(duì)象連接
SSh連接對(duì)象與遠(yuǎn)程主機(jī)建立SSH連接。
ssh.connect(hostname='example.com', port=22, username='user', password='password')3、SSH連接對(duì)象執(zhí)行命令
SSH連接對(duì)象執(zhí)行遠(yuǎn)程主機(jī)的命令和程序。返回值為一個(gè)元組,包含了命令執(zhí)行的返回碼和標(biāo)準(zhǔn)輸出結(jié)果。
stdin, stdout, stderr = ssh.exec_command('ls -l')
print(stdout.read().decode('utf-8'))4、SSH連接對(duì)象傳輸文件
SSH連接對(duì)象傳輸文件可以將本地文件復(fù)制到遠(yuǎn)程主機(jī),也可以將遠(yuǎn)程主機(jī)文件復(fù)制到本地文件系統(tǒng)。
sftp = ssh.open_sftp()
sftp.put(local_path, remote_path)
sftp.get(remote_path, local_path)
sftp.close()5、SSH連接對(duì)象控制會(huì)話
SSH連接對(duì)象控制會(huì)話可以用于交互式的SSH會(huì)話,也可以將多個(gè)命令執(zhí)行在同一個(gè)SSH會(huì)話中。
channel = ssh.invoke_shell()
channel.send('ls -l\n')
print(channel.recv(4096))四、Paramiko模塊高級(jí)使用
1、SSH連接對(duì)象批量執(zhí)行命令
通過(guò)SSH連接對(duì)象批量執(zhí)行命令可以快速執(zhí)行一系列的命令和腳本。
commands = ['uptime', 'df -h']
for command in commands:
stdin, stdout, stderr = ssh.exec_command(command)
print(stdout.read().decode('utf-8'))2、SSH連接對(duì)象代理設(shè)置
SSH連接對(duì)象代理設(shè)置可以通過(guò)代理服務(wù)器讓SSH連接對(duì)象連接到其他遠(yuǎn)程主機(jī)。
proxy = paramiko.ProxyCommand('ssh user@proxyhost -p 22 nc %h %p')
ssh.connect(hostname='example.com', port=22, username='user', password='password', sock=proxy)3、SSH連接對(duì)象多個(gè)SSH連接
SSH連接對(duì)象多個(gè)SSH連接可以通過(guò)連接多個(gè)遠(yuǎn)程主機(jī)進(jìn)行并行執(zhí)行命令和數(shù)據(jù)傳輸。
ssh1, ssh2 = paramiko.SSHClient(), paramiko.SSHClient()
ssh1.connect(hostname='example1.com', port=22, username='user', password='password')
ssh2.connect(hostname='example2.com', port=22, username='user', password='password')
stdin1, stdout1, stderr1 = ssh1.exec_command('ls -l')
print(stdout1.read().decode('utf-8'))
stdin2, stdout2, stderr2 = ssh2.exec_command('df -h')
print(stdout2.read().decode('utf-8'))4、SSH連接對(duì)象SSH密鑰認(rèn)證
SSH連接對(duì)象SSH密鑰認(rèn)證可以替代密碼進(jìn)行SSH連接,更加安全和方便。
ssh_key = paramiko.RSAKey.from_private_key_file('/path/to/key')
ssh.connect(hostname='example.com', port=22, username='user', pkey=ssh_key)5、SSH連接對(duì)象控制超時(shí)時(shí)間
SSH連接對(duì)象控制超時(shí)時(shí)間可以避免SSH連接出現(xiàn)超時(shí)等問(wèn)題。
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect(hostname='example.com', port=22, username='user', password='password', timeout=3.0)五、總結(jié)
Python Paramiko模塊是Python編程語(yǔ)言中的SSHv2協(xié)議的實(shí)現(xiàn),支持連接SSH客戶端和服務(wù)器。通過(guò)SSH連接對(duì)象批量執(zhí)行命令、傳輸文件、執(zhí)行遠(yuǎn)程代碼和控制SSH會(huì)話等,可以實(shí)現(xiàn)后臺(tái)自動(dòng)化、配置管理、網(wǎng)絡(luò)管理、系統(tǒng)測(cè)試、安全審計(jì)等眾多領(lǐng)域的應(yīng)用。同時(shí),通過(guò)SSH密鑰認(rèn)證、代理設(shè)置、多個(gè)SSH連接和超時(shí)時(shí)間控制等高級(jí)使用,可以提高SSH連接對(duì)象的安全性和可靠性。
網(wǎng)頁(yè)題目:創(chuàng)新互聯(lián)Python教程:PythonParamiko模塊用法介紹
當(dāng)前地址:http://www.dlmjj.cn/article/dpiehpp.html


咨詢
建站咨詢
