成人性生交大片免费看视频r_亚洲综合极品香蕉久久网_在线视频免费观看一区_亚洲精品亚洲人成人网在线播放_国产精品毛片av_久久久久国产精品www_亚洲国产一区二区三区在线播_日韩一区二区三区四区区区_亚洲精品国产无套在线观_国产免费www

主頁 > 知識庫 > python基于paramiko庫遠程執(zhí)行 SSH 命令,實現(xiàn) sftp 下載文件

python基于paramiko庫遠程執(zhí)行 SSH 命令,實現(xiàn) sftp 下載文件

熱門標簽:賓館能在百度地圖標注嗎 電銷機器人 金倫通信 鄭州智能外呼系統(tǒng)中心 汕頭電商外呼系統(tǒng)供應商 400電話 申請 條件 云南地圖標注 北京外呼電銷機器人招商 南京crm外呼系統(tǒng)排名 crm電銷機器人

楔子

我們使用 Python 避免不了和 Linux 打交道,而有時我們需要執(zhí)行一些 shell 命令。如果在本地的話,那么可以通過調用 os.system 或者 subprocess.Popen 來執(zhí)行,但如果我們希望遠程執(zhí)行其它機器上的 shell 命令,這個時候該怎么做呢?下面我們就來推薦一個第三方庫 paramiko,看看如何使用 Python 遠程操作其它機器。

paramiko

網(wǎng)絡傳輸是遵循協(xié)議的,比如 SSH,paramiko 則是實現(xiàn)了 SSHv2 協(xié)議的一個 Python 第三方庫(底層使用的是 cryptography)。有了 paramiko 之后,我們便可以通過 Python 使用 SSH 協(xié)議來連接遠程服務器執(zhí)行操作,和 xshell 本質上是類似的。

注意:我們在 Python 代碼中是直接通過 SSH 協(xié)議對遠程服務器執(zhí)行操作,而不是調用 ssh 命令對遠程服務器進行操作。

既然要使用,那么首先要安裝,直接 pip install paramiko 即可。

paramiko 包含兩大核心組件:SSHClient 和 SFTPClient

SSHClient 的作用類似于 Linux 下的 ssh 命令,是對 SSH 會話的封裝,通常用于執(zhí)行遠程命令。

SFTPClient 的作用類似于 Linux 下的 sftp 命令,是對 SFTP 客戶端的封裝,用于實現(xiàn)遠程文件的操作。比如:文件上傳,下載、修改文件權限等操作。

下面我們就來介紹它們的用法。

SSHClient 的使用

首先創(chuàng)建一個客戶端實例, client = paramiko.SSHClient(),然后這個 client 下有很多方法。

connect:實現(xiàn)遠程服務器的連接與認證

def connect(
 self,
 hostname,
 port=SSH_PORT,
 username=None,
 password=None,
 pkey=None,
 key_filename=None,
 timeout=None,
 allow_agent=True,
 look_for_keys=True,
 compress=False,
 sock=None,
 gss_auth=False,
 gss_kex=False,
 gss_deleg_creds=True,
 gss_host=None,
 banner_timeout=None,
 auth_timeout=None,
 gss_trust_dns=True,
 passphrase=None,
 disabled_algorithms=None,
):
 """"""

里面參數(shù)很多,但常用的參數(shù)如下:

  • hostname:連接的目的主機, 這個參數(shù)是必須的
  • port=SSH_PORT:指定的端口, 默認是 22
  • username=None:登陸的用戶
  • password=None:用戶密碼
  • pkey=None:通過私鑰進行身份驗證
  • key_filename=None:一個文件名或文件列表, 指定私鑰文件
  • timeout=None:可選的 tcp 連接超時時間
  • allow_agent=True:是否允許連接到 ssh 代理, 默認為 True
  • look_for_keys=True:是否在 ~/.ssh 中搜索私鑰文件, 默認為 True, 表示允許
  • compress=False:是否打開壓縮

set_missing_host_key_policy:當遠程服務器沒有本地秘鑰或 HostKeys 對象時的應對策略,目前支持三種:

  • AutoAddPolicy:自動添加主機名以及主機秘鑰到本地 HostKeys 對象, 不依賴 load_system_host_key 的配置, 即新建立 ssh 連接時不需要再輸入 yes 或 no 進行確認
  • WarningPolicy:用于記錄一個未知的主機秘鑰的 Python 警告、并且接收; 所以它的功能和 AutoAddPolicy 是類似的, 只不過會提示這是新連接
  • RejectPolicy:自動拒絕未知的主機名和秘鑰, 依賴 load_system_host_key 的配置, 該選項為默認選項

所以我們一般都會將策略改成 AutoAddPolicy,不然還需要在本地進行配置。

exec_command:遠程執(zhí)行的具體 Linux 命令

open_sftp:在當前 ssh 會話的基礎上創(chuàng)建一個 sftp 會話,該方法會返回一個 SFTPClient 對象,可以執(zhí)行文件的上傳、下載等操作。我們后面在 SFTPClient 的時候會說。

下面我們來演示一下:

import paramiko

# 實例化 SSHClient
client = paramiko.SSHClient()

# 自動添加策略, 保存服務器的主機名和密鑰信息; 如果不添加, 那么不再本地 know_hosts 文件中的主機將無法連接
client.set_missing_host_key_policy(paramiko.AutoAddPolicy())

# 連接 SSH 服務端, 通過用戶名和密碼進行認證
# 該過程會創(chuàng)建一個 session, 它是 client 和 server 保持連接的對象
client.connect(hostname='47.94.174.89', port=22, username='root', password='xxxxxxx')

# 執(zhí)行遠程命令, 該方法會打開一個 paramiko.Channel 對象(類 socket, 一種安全的 SSH 傳輸通道)
# 會返回三個值, 分別是 stdin(標準輸入)、stdout(標準輸出)、stderr(錯誤輸出)
stdin, stdout, stderr = client.exec_command("ls /")

# 打印執(zhí)行結果, 顯然我們要通過 stdout 來查看, 我們可以調用 stdout.read 獲取執(zhí)行的結果
# 但是返回的是字節(jié), 所以需要先獲取對應的編碼, 然后再進行 decode
print(stdout.read().decode("utf-8"))
"""
bin
boot
dev
etc
home
lib
lib64
lost+found
media
mnt
opt
proc
root
run
sbin
srv
sys
tmp
usr
var

"""
# 最后關閉 SSHClient 對象
client.close()

還是很簡單的,如果我們輸入了一條錯誤的命令,那么 stdout 里面就不會有內(nèi)容了,因為錯誤信息會保存是在 stderr 中。

import paramiko

client = paramiko.SSHClient()
client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
client.connect(hostname='47.94.174.89', port=22, username='root', password='xxxxxxx')
stdin, stdout, stderr = client.exec_command("xxxxx")
print(stderr.read().decode("utf-8"))
"""
bash: xxxxx: command not found

"""
client.close()

SFTPClient 的使用

SFTPClient 作為一個 sftp 的客戶端對象,根據(jù) ssh 傳輸協(xié)議的 sftp 會話,可以實現(xiàn)遠程文件的操作,例如:上傳、下載、查看權限和狀態(tài)等等。

import paramiko

# 創(chuàng)建一個 Transport 對象, 使用時會同步創(chuàng)建一個 paramiko.Channel 對象
# 參數(shù)傳遞一個由 IP 和 PORT 組成的元組即可
transport = paramiko.Transport(("47.94.174.89", 22))

# 連接 ssh, 通過 username 和 password
transport.connect(username="root", password="xxxxxxx")

# 獲取 SFTPClient 實例, 它便相當于 Linux 下的 sftp, 我們通過它可以進行文件的一些操作
sftp = paramiko.SFTPClient.from_transport(transport)

以上我們便得到的 sftp,那么它都支持哪些操作呢?

  • put(self, localpath, remotepath, callback=None, confirm=True):將本地文件上傳到服務器, callback 表示回調函數(shù), 上傳成功后調用; confirm 表示是否調用 stat 方法檢查文件狀態(tài), 返回 ls -l 的結果
  • get(self, remotepath, localpath, callback=None):將文件從服務器下載到本地
  • mkdir(self, path, mode=o777):在服務器上創(chuàng)建目錄, mode 表示權限, 默認為 511(o777 是一個變量, 等于 511)
  • rmdir(self, path):刪除服務器上的目錄
  • remove(self, path):刪除服務器上的文件
  • rename(self, oldpath, newpath):對服務器上目錄進行重命名
  • stat(self, path):查看文件或目錄的狀態(tài)
  • listdir(self, path='.'):列出服務器目錄下的文件
  • getcwd(self):查看工作區(qū), 也就是當前所在路徑
  • chmod(self, path, mode):改變權限
  • chown(self, path, uid, gid): 改變用戶和組
  • chdir(self, path):改變工作區(qū)

常用的大概以上這些,我們來演示一下。

# 1. 改變工作區(qū)
sftp.chdir("/usr/local/bin")

# 2. 查看工作區(qū)
print(sftp.getcwd()) # /usr/local/bin
sftp.chdir("/root")
print(sftp.getcwd()) # /root
"""
如果不調用 sftp.chdir(path) 的時候, 那么打印 sftp.getcwd() 時結果為 None
但我們知道登陸 Linux 時, 默認會在 /root 目錄(對于 root 用戶而言)
對于當前的 sftp 而言也確實如此, 只不過打印 sftp.getcwd() 的時候結果為 None 罷了 
"""

# 3. 列出當前目錄下的文件
print(sftp.listdir("/usr/local")) # ['lib', 'lib64', 'games', 'aegis', ...]

# 4. 查看文件或目錄狀態(tài)
print(sftp.stat("/root/.ssh/authorized_keys"))
"""
-rw------- 1 0  0    0 16 Dec 13:26 ?
"""

# 5. 改變權限
sftp.chmod("/root/.ssh/authorized_keys", 0o777)
print(sftp.stat("/root/.ssh/authorized_keys"))
"""
-rwxrwxrwx 1 0  0    0 16 Dec 13:26 ?
"""

# 6. 創(chuàng)建目錄
print("dir" in sftp.listdir("/root")) # False
sftp.mkdir("/root/dir", mode=0o777)
print("dir" in sftp.listdir("/root")) # True

# 7. 刪除目錄
sftp.rmdir("/root/dir")
print("dir" in sftp.listdir("/root")) # False

# 8. 刪除文件
sftp.remove("/root/1.py")

# 9. 下載文件
sftp.get("/root/makefile", r"makefile")

# 10. 上傳文件
sftp.put("dockerfile", "/root/dockerfile")

# 最后關閉 sftp 和 transport
sftp.close()
transport.close()

當然我們在介紹 SSHClient 的時候說過,還可以通過 open_sftp 的方式來創(chuàng)建 sftp 客戶端。

import paramiko

client = paramiko.SSHClient()
client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
client.connect(hostname='47.94.174.89', port=22, username='root', password='xxxxxxx')
# 這種方式創(chuàng)建也是可以的
sftp = client.open_sftp()

以上就是python基于paramiko庫遠程執(zhí)行 SSH 命令,實現(xiàn) sftp 下載文件的詳細內(nèi)容,更多關于python paramiko庫的資料請關注腳本之家其它相關文章!

您可能感興趣的文章:
  • 用Python自動下載網(wǎng)站所有文件
  • Python解析m3u8拼接下載mp4視頻文件的示例代碼
  • python爬蟲智能翻頁批量下載文件的實例詳解
  • python 下載文件的幾種方法匯總
  • python 基于selectors庫實現(xiàn)文件上傳與下載
  • Python實現(xiàn)FTP文件定時自動下載的步驟
  • Python 使用SFTP和FTP實現(xiàn)對服務器的文件下載功能
  • python從ftp獲取文件并下載到本地
  • Python根據(jù)URL地址下載文件并保存至對應目錄的實現(xiàn)
  • python 下載文件的幾種方式分享

標簽:浙江 石家莊 錫林郭勒盟 文山 西寧 懷化 梅州 昆明

巨人網(wǎng)絡通訊聲明:本文標題《python基于paramiko庫遠程執(zhí)行 SSH 命令,實現(xiàn) sftp 下載文件》,本文關鍵詞  python,基于,paramiko,庫,遠程,;如發(fā)現(xiàn)本文內(nèi)容存在版權問題,煩請?zhí)峁┫嚓P信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《python基于paramiko庫遠程執(zhí)行 SSH 命令,實現(xiàn) sftp 下載文件》相關的同類信息!
  • 本頁收集關于python基于paramiko庫遠程執(zhí)行 SSH 命令,實現(xiàn) sftp 下載文件的相關信息資訊供網(wǎng)民參考!
  • 推薦文章
    国产后入清纯学生妹| 日本一区福利在线| 免费在线观看黄色小视频| 黑人巨大精品一区二区在线| 国产jizz18女人高潮| 无码国产精品一区二区免费16| 日本一卡二卡四卡精品| 国精产品一区一区二区三区mba| 中文视频在线观看| 国产又黄又粗的视频| 国产午夜福利视频在线观看| 国产一区在线看| 国产日韩欧美精品综合| 久久精品亚洲国产奇米99| 国产亚洲一区二区在线观看| 国产精品无码久久av| 台湾亚洲精品一区二区tv| 欧美高清视频在线高清观看mv色露露十八| 一本大道av伊人久久综合| 日本中文字幕电影在线观看| 国产人妻黑人一区二区三区| 在线观看免费成人av| 国产免费a视频| 美女做暖暖视频免费在线观看全部网址91| 久久视频国产精品免费视频在线| 精品久久久久久久久久久下田| 亚洲精品一区二区三区中文字幕| 国产欧美va欧美不卡在线| 麻豆传传媒久久久爱| 2024短剧网剧在线观看| 日韩网站中文字幕| 欧美—级a级欧美特级ar全黄| 激情图片中文字幕| 91豆麻精品91久久久久久| www.一区二区三区| 视频一区国产| a天堂中文字幕| 在线观看视频网站你懂得| 亚洲女人毛茸茸高潮| 91九色91蝌蚪| 黄色一级片一级片| 欧美成人精品3d动漫h| 久久国产精品二区| 亚洲精品99久久久久中文字幕| 国产精品久久免费视频| 大陆av在线播放| 久久99精品久久久久子伦| 欧美国产日本视频| 日韩中文字幕在线视频| 男女爱爱福利视频| 亚洲综合色婷婷| 国产91在线视频蝌蚪| 人妻 丝袜美腿 中文字幕| 亚洲一区二区三区免费看| 欧美高清xxx| jizzjizz在线观看| 午夜性色福利影院| 成人动漫视频| 国产精品一区在线免费观看| 欧美国产日韩xxxxx| av电影一区二区三区| 中文字幕中文字幕在线中文字幕三区| 97精品一区二区三区| 91传媒理伦片在线观看| 日韩精品五月天| 2019天天操夜夜操| 一本一本久久a久久精品牛牛影视| 中文字幕日韩精品在线| 国产裸体美女永久免费无遮挡| 欧美日韩综合久久| 色婷婷一区二区三区| 成人免费视频一区| 少妇性bbb搡bbb爽爽爽欧美| 国产精品嫩草影院精东| 夜夜春亚洲嫩草影视日日摸夜夜添夜| 超碰成人在线观看| 很黄的网站在线观看| 亚洲自拍偷拍网站| 色妹子一区二区| 一区视频在线| 中文字幕一区二区在线观看| 手机在线电影一区| 五月婷婷深深爱| 久久综合狠狠综合久久综合88| 樱花草www在线观看| 激情影院在线| 国产精品久久久久久久久果冻传媒| 香蕉精品视频在线观看| 国产精品成人免费观看| 国产综合精品久久| 99国产牛牛视频在线网站| 欧美三级电影一区二区三区| 日韩中文字幕av电影| 国产又粗又猛视频免费| 强乱中文字幕av一区乱码| 国内国产区免费视频| 国产精品久久毛片av大全日韩| 亚洲国产一区二区久久久777| 国内精品免费午夜毛片| 国产经品一区二区| 在线免费看av| 成人激情在线播放| 国产一级生活片| 日韩av在线播放网址| 黄动漫在线看| 国产v日韩v欧美v| 亚洲成人在线视频播放| 日本一本高清视频| www污污网站在线看| 一级性生活大片| 亚洲成人福利在线观看| 国产成人精品优优av| 97在线观看免费高清视频| 色偷偷网站视频| 国产精品自偷自拍| 亚洲综合视频在线| 91精品亚洲一区在线观看| 国产精品呻吟| 国产一区二区网站| 波多野结衣视频在线观看| 菠萝蜜视频在线观看一区| 九色自拍视频| 欧美在线观看视频在线| 麻豆精品99| 日韩中文在线中文网三级| av免费观看一区二区| 免费看国产一级片| 99久精品国产| 婷婷五月综合激情| 国产欧美视频一区二区三区| 中文字幕一区二区三区乱码图片| www.国产麻豆| 国产精品久久久久一区二区三区| 制服丝袜中文字幕亚洲| 大陆一级毛片| 欧美韩一区二区| 伊人精品久久久久7777| 又长又粗又大又爽| 最新天堂资源在线资源| 国产精品久久亚洲不卡| 欲色天天网综合久久| 日本xxxx高清色视频| 天天躁夜夜躁狠狠是什么心态| 日本一区影院| 国产精品麻豆入口| 中文字幕av在线播放| 久久国产精品高清一区二区三区| 九九视频在线免费观看| 国产一区二区三区在线观看视频| 国产精品吴梦梦| 亚洲1024| 亚洲成人激情综合网| 密臀av一区二区三区| 欧美日韩国产一二三区| 2021中文字幕在线| 久久99精品国产.久久久久| 成熟丰满熟妇高潮xxxxx视频| 国产精品久久久久7777| 久久国际精品| 成人免费黄色| 亚洲成av人片在线观看www| 亚洲精品一区av| 国产免费a∨片在线观看不卡| 欧美日韩水蜜桃| 成人免费一区二区三区| 中文字幕国内精品| 永久在线免费观看| 天堂√8在线中文| 91极品女神在线| 黄色欧美网站| 日本不卡123| 日韩三级免费观看| 亚洲人成网站在线在线观看| 国产精品久久久久9999赢消| 国产精品国产一区二区| 丝袜美腿一区二区三区| 精品国产免费人成在线观看| 久久久久久久免费视频了| 国产尤物在线观看| 一区二区三区在线免费| 韩日午夜在线资源一区二区| 91精品国产综合久久香蕉麻豆| 色av成人天堂桃色av| 中文字幕av一区二区三区佐山爱| 亚洲线精品一区二区三区八戒| 欧美日韩在线精品一区二区三区激情综合| 亚洲午夜在线| 精品久久久久久一区| 亚洲欧美另类日韩| 国产性生活网站| 久久99国产精品| 97人人澡人人爽人人模亚洲| 最新国产在线| 精品视频国产| 成人做爽爽免费视频| 成人精品3d动漫| 九九九伊在线综合永久| 免费成人av在线| 超碰在线公开超碰在线| 91视频观看视频| 久久影院中文字幕| 久久精品中文字幕| 国产男女猛烈无遮挡免费视频| a√中文在线观看| eeuss影院在线| 欧美日产在线观看| 久久亚洲国产成人精品性色| 国产综合亚洲精品一区二| 久久久噜噜噜久久狠狠50岁| 国产porn视频| 成人精品免费在线观看| 国产黄色一级大片| 免费在线观看日韩av| 国产精品毛片a∨一区二区三区|国| 国产老肥熟一区二区三区| www.欧美激情.com| 国产亚洲成av人在线观看导航| 亚洲综合在线不卡| 天堂在线www天堂中文在线| www.精品在线| 91精品久久久久久久久中文字幕| 日韩久久99| 久久久高清一区二区三区| 亚洲视频中文| 日韩久久免费av| 日韩经典在线观看| 午夜国产一区| 尤物在线观看| 正在播放亚洲1区| 97超碰资源站在线观看| 浪潮av在线| 美日韩一级片在线观看| 亚洲精品三级| 黄色一级大片免费| 日韩精品中文字幕在线一区| 日韩电影一区二区三区四区| 久草免费在线观看视频| 极品尤物av丝袜美腿在线观看| 成人福利电影精品一区二区在线观看| 日本大胆人体视频| 色综合999| 欧美韩日一区| 变态另类ts人妖一区二区| 午夜视频国产| 欧美最猛黑人xxxx| 丰满人妻一区二区三区无码av| 狠狠久久亚洲欧美| av福利网址网站| 欧美午夜丰满在线18影院| 四虎永久在线精品无码视频| 欧美日韩精品免费观看视频完整| 末成年女av片一区二区下载| chinese少妇国语对白| 成年网站在线观看| 91精品啪在线观看麻豆免费| 国产一级爱c视频| 国产成人免费在线观看不卡| 国产伦精品一区二区三区在线播放| 91精品欧美久久久久久动漫| 免费人成网站在线观看欧美高清| 欧美一区二区三区成人片在线| 91视频免费网址| 一插菊花综合| 女同一区二区三区| 亚洲欧美日韩久久精品| 另类av导航| 99久久久无码国产精品| 久久久www成人免费精品| 91免费在线视频观看| 美女视频网站黄色亚洲| 日韩精品视频久久| 147欧美人体大胆444| 亚洲国产午夜伦理片大全在线观看网站| 久热精品在线播放| 国产做受高潮漫动| 日韩在线观看免费全集电视剧网站| 欧美自拍偷拍一区| 中文字幕无线精品亚洲乱码一区| 亚洲va欧美va天堂v国产综合| 国产精品天美传媒沈樵| 中文在线а√天堂| 久久国产三级精品| 国产偷人妻精品一区二区在线| 欧美电影在线观看一区| 国产二区在线播放| 日韩高清人体午夜| 丝袜美腿中文字幕| 国产麻豆精品一区二区三区v视界| 欧美日韩一区精品| 97av中文字幕| 狠狠色噜噜狠狠狠狠888奇米| 97在线视频免费播放| 在线观看不卡的av| 精品国产91久久久久久浪潮蜜月| 色综合99久久久无码国产精品| 青娱乐极品盛宴一区二区| 欧美日韩精品是欧美日韩精品| 日本三级很黄试看120秒| 成人黄色一级大片| 亚洲第一福利网站| 亚洲综合在线第一页| 久色国产在线| 久久久无码人妻精品无码| 欧美人成免费网站| 欧美另类videosbest视频| 精品国产午夜福利| 香港成人在线视频| 视频一区视频二区中文| 1000部精品久久久久久久久| 日韩一区二区不卡视频| 中文字幕一区二区三区不卡| 国产校园另类小说区| 久久久久久久久久久久久久久久久| 蜜桃av乱码一区二区三区| 在线免费观看av网| 亚洲色欲久久久综合网东京热| 国产一区不卡精品| 国产女人高潮的av毛片| 日韩精品有码在线观看| 免费男女羞羞的视频网站中文子暮| 最新eeuss影院在线观看| 欧美亚洲国产视频| 久久精品女人毛片国产| 精品久久久久国产| 亚洲剧情一区二区| 最新日韩在线| 欧美激情国产高清| 亚洲乱码精品久久久久..|