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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

初识Paramiko

發布時間:2023/12/20 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 初识Paramiko 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

簡介:

paramiko是用python語言寫的一個模塊,遵循SSH2協議,支持以加密和認證的方式,進行遠程服務器的連接。跟常用軟件xshell 、xftp功能一樣,但是可以連接多臺服務器,進行復雜的操作。

安裝 :

pip install PyCrypto? (PyCrypto是使用Python編寫的加密工具包)

pip install paramiko /easy_install paramiko

paramiko主要包含核心組件,一個是SSHClient類,另一個是SFTPClient類

一、SSHClient類的主要函數:

1、Connect方法

Connect實現了遠程SSH的連接并校驗。

Connect(self,hostname,port,username,password,pkey,key_filename,timeout,allow_agent,look_for_keys ,compress)

參數含義:

Hostname? str :主機ip

Port? int :端口

Username? str:用戶名

Password? str :密碼

Pkey? pkey: 秘鑰

Timeout? float: 超時時間

Allow_agent? boool :當為flase時,禁用連到ssh代理

Look_for_keys? bool : flase時,禁用在~/.ssh中搜索秘鑰文件

Compress?? ?bool : true時打開壓縮。

2、exec_command方法

遠程命令執行的方法

exec_command(self,command,bufsize=-1)

參數:

Command? str :命令串

Bufsize ?int:文件緩沖區大小,默認-1沒有限制

?

3、load_system_host_keys

加載本地公秘鑰校驗文件,默認為~/.ssh/known_hosts

?load_system_host_keys(self,filename)

fielname? str :制定遠程主機公鑰記錄文件

4、set_missing_host_key_policy

連接主機沒有本地主機秘鑰或者HostKeys對象時策略,目前支持三種:AutoAddPolicy,RejectPolicy,WarningPolicy

AutoAddPolicy:自動添加主機名以及主機秘鑰

RejectPolicy(默認):自動拒絕未知的主機名和秘鑰

WarningPolicy: 用于記錄一個未知主機秘鑰的Python警告

ssh = paramiko.SSHClient()

ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())

5、簡單案例

# -*-coding:utf-8-*-

import paramiko

username = 'root'

password = 'Aliyun6688xyz'

hostname = '119.29.0.208'

port = 22

ssh = paramiko.SSHClient()

ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy()) # 允許連接不在know_hosts文件中的主機

ssh.connect(hostname,port,username, password)

stdin, stdout, stderr = ssh.exec_command("uptime")

print stdout.readlines()

ssh.close()

?

二、SFTPClient類——實現遠程操作文件

1、from_transport方法

創建一個已經連通的sftp客戶端通道

2、put函數

上傳文件到服務器

Put(self,localpath,remotepath,callback=none,confirm=none)

Localpath ?str : 上傳文件本地源

Remotepath? str : 遠程路徑

Callback(function(int,int)) 獲取已經接受的字節數以及總傳輸字節數。

Confirm? bool : 文件上傳完畢后是否調用start()函數,以便確認文件大小。

3、get方法

從遠程主機端下載文件同put

4、其他方法

Mkdir 創建目錄 sftp.mkdr(‘/home/user’,0755)

Remove 刪除主機端指定目錄 sftp.remove(‘/home/user’)

Rename 從命名服務端的文件或者目錄 sftp.rename(“/home/test.sh”,”/home/newtest.sh”)

Listdir ?獲取遠程SFTP服務器端指定的目錄列表,返回list形式? sftp.listdir(“/home”)

Stat 獲取遠程主機指定文件信息 sftp.stat(“/home/test.sh”)

5、簡單測試代碼

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

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

sftp = paramiko.SFTPClient.from_transport(t)

remotepath='/tmp/test.txt'

localpath='/test.txt'

sftp.get(localpath,remotepath)# get是獲取函數,put函數是上傳函數

t.close()

轉載于:https://www.cnblogs.com/ouyangxiafei/p/6096770.html

總結

以上是生活随笔為你收集整理的初识Paramiko的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。