最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

引言

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

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

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

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

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

建立連接

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

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

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)槟銢](méi)有告知你的機(jī)器,你 "信任 "你試圖訪(fǎng)問(wèn)的遠(yuǎn)程服務(wù)器。如果您在命令行或終端上首次嘗試連接服務(wù)器,您會(huì)收到類(lèi)似下面的信息:

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)在就可以訪(fǎng)問(wèn)它而無(wú)需提示,直到該機(jī)器的密鑰發(fā)生變化。同樣,Paramiko 還要求您驗(yàn)證對(duì)機(jī)器的信任。這種驗(yàn)證是通過(guò)調(diào)用 SSHClient 上的 set_missing_host_key_policy(),并在訪(fǎng)問(wèn)新的遠(yuǎn)程機(jī)器時(shí)傳遞你希望執(zhí)行的策略來(lái)完成的。默認(rèn)情況下,paramiko.SSHclient 會(huì)將策略設(shè)置為 RejectPolicy。如上文所述,該策略無(wú)需驗(yàn)證就會(huì)拒絕連接。不過(guò),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 的解釋?zhuān)?/p>

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

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

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

需要輸入的命令

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

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

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

文件傳輸

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

從遠(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ì)為你帶來(lái)效率上的提高。

以上就是使用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)文章

  • 構(gòu)建?Python?命令行參數(shù)的?4?種常見(jiàn)方式

    構(gòu)建?Python?命令行參數(shù)的?4?種常見(jiàn)方式

    這篇文章主要介紹了構(gòu)建?Python?命令行參數(shù)的?4?種常見(jiàn)方式,文章圍繞主題展開(kāi)詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下
    2022-06-06
  • 使用Python和PySpark進(jìn)行數(shù)據(jù)分析的實(shí)戰(zhàn)教程

    使用Python和PySpark進(jìn)行數(shù)據(jù)分析的實(shí)戰(zhàn)教程

    數(shù)據(jù)分析是當(dāng)今信息時(shí)代中至關(guān)重要的技能之一,Python和PySpark作為強(qiáng)大的工具,提供了豐富的庫(kù)和功能,使得數(shù)據(jù)分析變得更加高效和靈活,在這篇文章中,我們將深入探討如何使用Python和PySpark進(jìn)行數(shù)據(jù)分析,需要的朋友可以參考下
    2024-01-01
  • Python入門(mén)_淺談邏輯判斷與運(yùn)算符

    Python入門(mén)_淺談邏輯判斷與運(yùn)算符

    下面小編就為大家?guī)?lái)一篇Python入門(mén)_淺談邏輯判斷與運(yùn)算符。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-05-05
  • Pandas數(shù)據(jù)分析之pandas文本處理

    Pandas數(shù)據(jù)分析之pandas文本處理

    這篇文章主要介紹了Pandas數(shù)據(jù)分析之pandas文本處理,pandas對(duì)文本數(shù)據(jù)也有很多便捷處理方法,可以不用寫(xiě)循環(huán),向量化操作運(yùn)算速度快,還可以進(jìn)行高級(jí)的正則表達(dá)式,各種復(fù)雜的邏輯篩選和匹配提取信息
    2022-08-08
  • python中的裝飾器詳解

    python中的裝飾器詳解

    這篇文章主要介紹了python中的裝飾器詳解,本文講解了裝飾器語(yǔ)法、簡(jiǎn)單裝飾器、帶內(nèi)嵌函數(shù)裝飾器、帶參數(shù)的裝飾器等內(nèi)容,需要的朋友可以參考下
    2015-04-04
  • 淺談Pycharm的項(xiàng)目文件名是紅色的原因及解決方式

    淺談Pycharm的項(xiàng)目文件名是紅色的原因及解決方式

    這篇文章主要介紹了淺談Pycharm的項(xiàng)目文件名是紅色的原因及解決方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-06-06
  • python環(huán)境配置方式(服務(wù)器+本地)

    python環(huán)境配置方式(服務(wù)器+本地)

    這篇文章詳細(xì)介紹了在服務(wù)器上安裝和配置Anaconda3、TensorFlow、PyTorch等深度學(xué)習(xí)環(huán)境的步驟,包括下載、初始化、創(chuàng)建環(huán)境、驗(yàn)證安裝以及解決一些常見(jiàn)問(wèn)題
    2025-01-01
  • Python編程通過(guò)懶屬性提升性能

    Python編程通過(guò)懶屬性提升性能

    大家好,在我看過(guò)的 Python 教程中,很少討論有懶屬性的,今天分享 Python 的懶屬性技術(shù),可以提升程序的性能,有需要的朋友可以借鑒參考下
    2021-09-09
  • Jmeter之變量拼接方式

    Jmeter之變量拼接方式

    在Jmeter腳本中,參數(shù)值可以通過(guò)字符串和變量進(jìn)行拼接,也可以使用多個(gè)變量直接拼接,無(wú)需使用連接符,如果使用python腳本,則需要按照python的語(yǔ)法規(guī)則進(jìn)行拼接,在Jmeter中,帶有引號(hào)的變量可以通過(guò)${}來(lái)識(shí)別為變量,而不會(huì)被誤認(rèn)為是字符串
    2024-10-10
  • Python使用functools.partial減少函數(shù)參數(shù)個(gè)數(shù)的高級(jí)技巧

    Python使用functools.partial減少函數(shù)參數(shù)個(gè)數(shù)的高級(jí)技巧

    減少函數(shù)參數(shù)個(gè)數(shù)不僅能使代碼更加??簡(jiǎn)潔易讀??,還能提高代碼的??可復(fù)用性??和??可維護(hù)性??,本文將深入探討如何使用functools.partial及其相關(guān)技術(shù)來(lái)簡(jiǎn)化函數(shù)調(diào)用接口,需要的可以了解下
    2025-10-10

最新評(píng)論

连山| 综艺| 巴马| 库尔勒市| 凤山市| 乡城县| 樟树市| 阿坝| 永顺县| 郧西县| 长垣县| 浦江县| 新邵县| 四川省| 徐州市| 普定县| 雷山县| 西林县| 新和县| 镇远县| 惠安县| 孝昌县| 清流县| 沧源| 普定县| 靖江市| 潼关县| 普兰县| 舒城县| 高平市| 鹰潭市| 云南省| 隆德县| 射洪县| 永平县| 友谊县| 高台县| 邹平县| 济阳县| 昌宁县| 三江|