日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > python >内容正文

python

python ssh实现_SSH协议的Python实现paramiko

發(fā)布時(shí)間:2024/7/5 python 46 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python ssh实现_SSH协议的Python实现paramiko 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

paramiko安裝

SSH是一個(gè)協(xié)議,paramiko 是一個(gè)Python 的庫(kù),該庫(kù)支持sshv2協(xié)議,實(shí)現(xiàn)了對(duì)遠(yuǎn)程服務(wù)器執(zhí)行操作

安裝命令:

pip3 install paramiko

SSHClient類與SFTPClient類

paramiko包含兩個(gè)核心組建,分別是SSHClient和SFTPClient

SSHClient:類似于Linux下的ssh命令,用于執(zhí)行遠(yuǎn)程命令。

SFTPClient:類似于Linux下的sftp命令,實(shí)現(xiàn)遠(yuǎn)程文件操作

SSHClient類的方法

connect:實(shí)現(xiàn)遠(yuǎn)程連接認(rèn)證,只有hostname 是必傳參數(shù)

connect(self,hostname,port=22,username=None,password=None,

pkey=None,key_filename=None,timeout=None,

allow_agent=True,look_for_keys=True,compress=False)

set_missing_host_key_poilcy:設(shè)置沒有做免密的主機(jī)應(yīng)對(duì)的策略

exec_command:在遠(yuǎn)程服務(wù)器上執(zhí)行命令的方法

open_sftp:在遠(yuǎn)程服務(wù)器上打開sftp回話

SFTPClient類的方法

put:上傳文件

get:下載文件

mkdir:創(chuàng)建目錄

remove:移除文件

rmdir:刪除目錄

rename:重命名文件/目錄

stat:查看文件詳細(xì)信息

listdir:列出指定目錄下的文件內(nèi)容

paramiko的基本使用

paramiko.SSHClient兩種認(rèn)證方式

在執(zhí)行遠(yuǎn)程服務(wù)器操作之前,首先需要連接遠(yuǎn)程服務(wù)器并進(jìn)行認(rèn)證。

paramiko 與 ssh命令一樣,支持密碼認(rèn)證和秘鑰認(rèn)證兩種方式

使用密碼認(rèn)證

import paramiko

ip = "192.168.32.130"

port = 22

user = "root"

pwd = "123456"

# 使用密碼認(rèn)證

ssh = paramiko.SSHClient()

ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy)

ssh.connect(ip,port,user,pwd)

使用秘鑰認(rèn)證

import paramiko

ip = "192.168.32.130"

port = 22

user = "root"

pwd = "123456"

# 使用密鑰認(rèn)證

ssh = paramiko.SSHClient()

ssh.connect(ip,port,user,key_filename="私鑰文件")

使用方法

遠(yuǎn)程執(zhí)行命令

import paramiko

ip = "192.168.32.130"

port = 22

user = "root"

pwd = "123456"

### 遠(yuǎn)程執(zhí)行命令

ssh = paramiko.SSHClient()

# 自動(dòng)添加免密

ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())

# 連接遠(yuǎn)程主機(jī)

ssh.connect(ip,port,user,pwd)

command = input("請(qǐng)輸入你要執(zhí)行的命令").strip()

# 接收輸出結(jié)果

stdin,stdout,stderr = ssh.exec_command(command)

res = stdout.readlines() + stderr.readlines()

for line in res:

print(line.strip())

ssh.close()

上傳文件到遠(yuǎn)程機(jī)器

import paramiko

ip = "192.168.32.130"

port = 22

user = "root"

pwd = "123456"

t = paramiko.Transport((ip,port))

t.connect(username=user,password=pwd)

sftp = paramiko.SFTPClient.from_transport(t)

# 上傳至遠(yuǎn)程服務(wù)器的目錄/文件

remotepath = "/tmp/test1.txt"

# 本地的一個(gè)文件

localpath = "/tmp/test.txt"

# 上傳

sftp.put(localpath,remotepath)

t.close()

從遠(yuǎn)程機(jī)器下載文件

import paramiko

ip = "192.168.32.130"

port = 22

user = "root"

pwd = "123456"

t = paramiko.Transport((ip,port))

t.connect(username=user,password=pwd)

sftp = paramiko.SFTPClient.from_transport(t)

# 上傳至遠(yuǎn)程服務(wù)器的目錄/文件

remotepath = "/tmp/test1.txt"

# 本地的一個(gè)文件

localpath = "/tmp/test.txt"

# 下載

sftp.get(remotepath,localpath)

t.close()

總結(jié)

以上是生活随笔為你收集整理的python ssh实现_SSH协议的Python实现paramiko的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。