欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

使用Python進(jìn)行SSH和文件傳輸實(shí)現(xiàn)方法實(shí)例

 更新時(shí)間:2023年12月25日 11:47:27   作者:簡(jiǎn)訊Alfred?愛生活愛扣釘  
這篇文章主要為大家介紹了使用Python進(jìn)行SSH和文件傳輸實(shí)現(xiàn)方法實(shí)例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪

引言

SSH 通常用于訪問遠(yuǎn)程機(jī)器并運(yùn)行命令、檢索文件或上傳文件。你可以使用 SFTP(安全文件傳輸協(xié)議)和 SCP(安全復(fù)制協(xié)議)將文件從遠(yuǎn)程機(jī)器傳輸?shù)奖镜?,反之亦然?/p>

根據(jù) paramiko.org 的介紹,python paramiko 模型提供了 SSHv2 協(xié)議的抽象,包括客戶端和服務(wù)器端功能。作為客戶端,您可以使用密碼或密鑰進(jìn)行身份驗(yàn)證;作為服務(wù)器,您可以決定允許哪些用戶訪問以及允許訪問的通道。

在本文中,我將重點(diǎn)介紹客戶端。

使用Python進(jìn)行SSH和文件傳輸

Paramiko.SSHClient 是 API 中記錄的 Paramiko 的主要客戶端,可用于與遠(yuǎn)程服務(wù)器建立連接并傳輸文件。

建立連接

import paramiko
ssh_client=paramiko.SSHClient()
ssh_client.connect(hostname='hostname',username='admin',password='password')

當(dāng)你首次連接的時(shí)候,可能會(huì)遇到以下問題:

missing_host_key raise SSHException('Server %r not found in known_hosts' % hostname) paramiko.ssh_exception.SSHException: Server 'hostname' not found in known_hosts

之所以會(huì)出現(xiàn)這個(gè)錯(cuò)誤,是因?yàn)槟銢]有告知你的機(jī)器,你 "信任 "你試圖訪問的遠(yuǎn)程服務(wù)器。如果您在命令行或終端上首次嘗試連接服務(wù)器,您會(huì)收到類似下面的信息:

The authenticity of host 'hostname' can't be established.RSA key fingerprint is 'key'. Are you sure you want to continue connecting (yes/no)?

當(dāng)您在這里選擇 "yes" 時(shí),您就會(huì)讓您的機(jī)器知道它可以信任該機(jī)器,您現(xiàn)在就可以訪問它而無需提示,直到該機(jī)器的密鑰發(fā)生變化。同樣,Paramiko 還要求您驗(yàn)證對(duì)機(jī)器的信任。這種驗(yàn)證是通過調(diào)用 SSHClient 上的 set_missing_host_key_policy(),并在訪問新的遠(yuǎn)程機(jī)器時(shí)傳遞你希望執(zhí)行的策略來完成的。默認(rèn)情況下,paramiko.SSHclient 會(huì)將策略設(shè)置為 RejectPolicy。如上文所述,該策略無需驗(yàn)證就會(huì)拒絕連接。不過,Paramiko 提供了一種 "信任所有 "密鑰策略(AutoAddPolicy)。將 AutoAddPolicy 實(shí)例解析為 set_missing_host_key_policy(),可將其改為允許任何主機(jī)。

現(xiàn)在再運(yùn)行代碼就不會(huì)報(bào)錯(cuò)了。

在遠(yuǎn)程計(jì)算機(jī)上運(yùn)行命令

要運(yùn)行命令,需要在 SSHClient 上調(diào)用 exec_command,并傳遞命令。響應(yīng)將以元組(stdin, stdout, stderr)形式返回。

例如,列出一個(gè)目錄中的所有文件:

stdin, stdout, stderr = ssh_client.exec_command("ls")

根據(jù) paramiko.org 的解釋:

• stdin 是只寫文件,可用于需要輸入的命令;

• stdout 文件提供命令的輸出結(jié)果;

• stderr 文件給出執(zhí)行命令時(shí)返回的錯(cuò)誤。如果沒有錯(cuò)誤,則為空。

需要輸入的命令

有時(shí),您需要提供密碼或額外的輸入信息才能運(yùn)行命令。這就是 stdin 的用途。讓我們用 sudo 運(yùn)行上面的命令。

stdin, stdout, stderr = ssh.exec_command("sudo ls")
stdin.write('mypassword\n')
print(stdout.readlines())

這樣就通過輸入密碼來執(zhí)行了 ls 命令。

文件傳輸

文件傳輸由 paramiko.SFTPClient 處理,您可以在 Paramiko.SSHClient 實(shí)例上調(diào)用 open_sftp(),獲得該客戶端。

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

ftp_client=ssh_client.open_sftp()
ftp_client.get('remotefileth','localfilepath')
ftp_client.close()

從本地向遠(yuǎn)程機(jī)器上傳文件

ftp_client=ssh.open_sftp()
ftp_client.put('localfilepath', 'remotefilepath')
ftp_client.close()

如果你也在工作活學(xué)習(xí)中需要用 Python 操作使用 SSH,不妨試試 paramiko,會(huì)為你帶來效率上的提高。

以上就是使用Python進(jìn)行SSH和文件傳輸實(shí)現(xiàn)方法實(shí)例的詳細(xì)內(nèi)容,更多關(guān)于Python SSH文件傳輸?shù)馁Y料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • Numpy數(shù)組轉(zhuǎn)置的實(shí)現(xiàn)

    Numpy數(shù)組轉(zhuǎn)置的實(shí)現(xiàn)

    本文主要介紹了Numpy數(shù)組轉(zhuǎn)置的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-02-02
  • 如何使用?Python?實(shí)現(xiàn)?DeepSeek?R1?本地化部署

    如何使用?Python?實(shí)現(xiàn)?DeepSeek?R1?本地化部署

    文章介紹了如何使用Python實(shí)現(xiàn)DeepSeekR1本地化部署,包括硬件環(huán)境、Python環(huán)境、安裝依賴包、配置與運(yùn)行代碼等步驟,幫助讀者輕松部署并運(yùn)行本地AI助手,感興趣的朋友一起看看吧
    2025-02-02
  • python 同時(shí)運(yùn)行多個(gè)程序的實(shí)例

    python 同時(shí)運(yùn)行多個(gè)程序的實(shí)例

    今天小編就為大家分享一篇python 同時(shí)運(yùn)行多個(gè)程序的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2019-01-01
  • Django 登錄注冊(cè)的實(shí)現(xiàn)示例

    Django 登錄注冊(cè)的實(shí)現(xiàn)示例

    本文主要介紹了Django 登錄注冊(cè)的實(shí)現(xiàn)示例,這是做網(wǎng)頁登錄和注冊(cè)基本上都是必要一步,具有一定的參考價(jià)值,感興趣的可以了解一下
    2023-10-10
  • Python之Django自動(dòng)實(shí)現(xiàn)html代碼(下拉框,數(shù)據(jù)選擇)

    Python之Django自動(dòng)實(shí)現(xiàn)html代碼(下拉框,數(shù)據(jù)選擇)

    這篇文章主要介紹了Python之Django自動(dòng)實(shí)現(xiàn)html代碼(下拉框,數(shù)據(jù)選擇),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2020-03-03
  • python獲取多線程及子線程的返回值

    python獲取多線程及子線程的返回值

    這篇文章主要介紹了python獲取多線程及子線程的返回值的相關(guān)資料,需要的朋友可以參考下
    2017-11-11
  • Python判斷有效的數(shù)獨(dú)算法示例

    Python判斷有效的數(shù)獨(dú)算法示例

    這篇文章主要介紹了Python判斷有效的數(shù)獨(dú)算法,結(jié)合實(shí)例形式分析了Python針對(duì)數(shù)獨(dú)有效性判定的相關(guān)操作技巧,需要的朋友可以參考下
    2019-02-02
  • python生成器推導(dǎo)式用法簡(jiǎn)單示例

    python生成器推導(dǎo)式用法簡(jiǎn)單示例

    這篇文章主要介紹了python生成器推導(dǎo)式用法,結(jié)合簡(jiǎn)單實(shí)例形式分析了Python生成器推導(dǎo)式的原理、使用方法及相關(guān)操作注意事項(xiàng),需要的朋友可以參考下
    2019-10-10
  • Python?OpenCV實(shí)現(xiàn)圖像增強(qiáng)操作詳解

    Python?OpenCV實(shí)現(xiàn)圖像增強(qiáng)操作詳解

    由于很多不確定因素,導(dǎo)致圖像采集的光環(huán)境極其復(fù)雜;為了提高目標(biāo)檢測(cè)模型的泛化能力,本文將使用python中的opencv模塊實(shí)現(xiàn)常見的圖像增強(qiáng)方法,感興趣的可以了解一下
    2022-10-10
  • python繪制餅圖和直方圖的方法

    python繪制餅圖和直方圖的方法

    這篇文章主要為大家詳細(xì)介紹了python繪制餅圖和直方圖的方法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-04-04

最新評(píng)論