衡阳派盒市场营销有限公司

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

如何使用Paramiko庫來建立SSH連接遠程命令?

網絡技術干貨圈 ? 來源:網絡技術干貨圈 ? 2023-04-28 09:50 ? 次閱讀

Paramiko是Python的一個SSH客戶端和服務器庫,可以實現SSHv2協議的加密和身份驗證功能,支持SFTP和SCP協議。在本文中,我們將介紹如何使用Paramiko庫來建立SSH連接、執行遠程命令、傳輸文件等。

安裝Paramiko

要使用Paramiko庫,我們需要先安裝它??梢允褂?a href="http://www.zgszdi.cn/tags/pi/" target="_blank">pip命令進行安裝:

pipinstallparamiko

建立SSH連接

使用Paramiko庫建立SSH連接非常簡單,只需指定主機名、用戶名和密碼即可。以下是一個簡單的示例:

importparamiko

ssh=paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect('hostname',username='username',password='password')

stdin,stdout,stderr=ssh.exec_command('ls')
print(stdout.read().decode())

ssh.close()

在上述示例中,我們首先創建一個SSHClient對象,并將主機名、用戶名和密碼作為參數傳遞給connect()方法。然后,使用exec_command()方法執行ls命令,并將結果打印到控制臺。最后,我們關閉SSH連接。

執行遠程命令

使用Paramiko庫執行遠程命令也很簡單,只需將命令作為字符串傳遞給exec_command()方法。以下是一個示例:

importparamiko

ssh=paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect('hostname',username='username',password='password')

command='ls-l'
stdin,stdout,stderr=ssh.exec_command(command)

forlineinstdout.readlines():
print(line.strip())

ssh.close()

在上述示例中,我們使用exec_command()方法執行ls -l命令,并使用readlines()方法讀取輸出結果,并打印到控制臺。需要注意的是,在某些情況下,需要使用strip()方法刪除輸出結果中的換行符。

eaa70198-e504-11ed-ab56-dac502259ad0.png

傳輸文件

使用Paramiko庫傳輸文件也很簡單,只需使用SFTPClient類即可。以下是一個示例:

importparamiko

ssh=paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect('hostname',username='username',password='password')

sftp=ssh.open_sftp()
sftp.put('local_file_path','remote_file_path')
sftp.get('remote_file_path','local_file_path')

sftp.close()
ssh.close()

在上述示例中,我們首先創建一個SFTPClient對象,并使用put()方法將本地文件傳輸到遠程主機上。然后,使用get()方法將遠程文件傳輸到本地主機上。最后,我們關閉SFTPClient和SSH連接。

使用密鑰認證

除了使用用戶名和密碼進行身份驗證外,我們還可以使用SSH密鑰進行身份驗證。以下是一個示例:

importparamiko

ssh=paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect('hostname',username='username',pkey=key)

stdin,stdout,stderr=ssh.exec_command('ls')
print(stdout.read().decode())

ssh.close()

在上述示例中,我們首先使用from_private_key_file()方法加載SSH私鑰文件,并將私鑰作為參數傳遞給connect()方法。然后,我們使用exec_command()方法執行ls命令,并將結果打印到控制臺。最后,我們關閉SSH連接。

高級選項

Paramiko庫還提供了許多高級選項,例如超時、端口轉發、密鑰管理等。以下是一個示例:

importparamiko

ssh=paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect('hostname',username='username',password='password',port=22,timeout=10)

#開啟端口轉發
transport=ssh.get_transport()
local_port=8080
remote_host='google.com'
remote_port=80
transport.request_port_forward('',local_port,remote_host,remote_port)

#密鑰管理
key=paramiko.RSAKey.generate(2048)
private_key_string=key.export_key('PEM')
public_key_string=key.get_base64()

ssh.close()

在上述示例中,我們首先使用connect()方法連接到遠程主機,并指定了端口號和超時時間。然后,我們使用get_transport()方法獲取SSH傳輸對象,并使用request_port_forward()方法開啟端口轉發。最后,我們使用generate()方法生成RSA密鑰,并使用export_key()和get_base64()方法導出私鑰和公鑰。

eac8fc4e-e504-11ed-ab56-dac502259ad0.png

結論

在本文中,我們介紹了如何使用Python Paramiko庫實現SSH客戶端和服務器功能,包括建立SSH連接、執行遠程命令、傳輸文件等。此外,我們還介紹了如何使用SSH密鑰進行身份驗證,并討論了一些高級選項。使用Paramiko庫,我們可以輕松地編寫Python腳本來管理遠程服務器和網絡設備。





審核編輯:劉清

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 服務器
    +關注

    關注

    12

    文章

    9308

    瀏覽量

    86073
  • SSH
    SSH
    +關注

    關注

    0

    文章

    189

    瀏覽量

    16406
  • python
    +關注

    關注

    56

    文章

    4807

    瀏覽量

    85041
  • SCP
    SCP
    +關注

    關注

    0

    文章

    29

    瀏覽量

    9286

原文標題:網絡工程師學Python-34-SSH客戶端和服務器庫Paramiko

文章出處:【微信號:網絡技術干貨圈,微信公眾號:網絡技術干貨圈】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    【linux篇】ubuntu下的SSH安裝與使用

    win端可以通過putty等一些ssh軟件進行遠程連接。win10系統也可以通過cmd打開dos串口,使用ssh命令。
    的頭像 發表于 06-13 09:07 ?3970次閱讀

    ssh連接

    Telne服務使用很方便,但是它是通過明文傳遞信息,所有安全性就不高,目前普遍使用的SSH(SecureShell)進行遠程管理 。SSH協議有S
    發表于 03-28 16:38

    【HiKey試用體驗】4.通過SSH遠程連接Hikey

    行操作,大神都是通過命令行寫程序什么的。這里給大家介紹一個炒雞好用的工具,SSH。SSH一句話介紹:可以遠程發送命令行到本機,想想如果你不需
    發表于 05-02 20:43

    如何使用SSH遠程命令登錄香橙派開發板

    地址為了遠程登錄香橙派開發板,首先需要獲取開發板的 IP 地址。我們可以通過串口查看。3.使用 ssh 遠程登錄香橙派開發板3.1使用 xshell 新建一個
    發表于 05-22 17:16

    ubuntu- python-ssh遠程控制jetson nano與單片機串口通信的方法

    筆記本和jetson都是18。04用筆記本連jetson再用python寫ssh連接nano,nano上插了板子可進行通信para.pyimport paramiko #創建一個ssh
    發表于 01-19 06:32

    Python+微信一鍵連接實現遠程管理Windows10操作系統的開機和關機

    首先通過微信發送開機指令,這里我使用的是 itchat 程序會調用 Paramiko SSH 遠程到內網的樹莓派執行 WakeOnLan 命令
    的頭像 發表于 02-25 09:17 ?6306次閱讀

    如何防止SSH會話斷開連接

    SSH連接經常會在幾分鐘不活動之后,出于安全原因,將會自動斷開連接。通過修改一下命令可以讓回話保持連接狀態。
    的頭像 發表于 12-28 09:39 ?1199次閱讀

    SSH第1部分:配置SSH以安全連接遠程設備

    Secure Shell (SSH) 協議通常用于遠程管理,因為它在客戶端和遠程設備之間提供加密連接,并在兩個系統之間啟用加密的雙向通信路徑。幾十年
    的頭像 發表于 01-03 09:45 ?1439次閱讀

    [Q3] 沒有ssh客戶端怎么快速連接?

    ,Pkey,Port=22): #基于用戶名密鑰連接并執行命令 try: SSH = paramiko.SSHClient
    的頭像 發表于 01-06 18:14 ?893次閱讀

    如何用paramiko登陸服務器并執行命令

    paramiko是用來遠程執行命令的模塊,
    的頭像 發表于 03-03 15:27 ?1116次閱讀
    如何用<b class='flag-5'>paramiko</b>登陸服務器并執行<b class='flag-5'>命令</b>

    介紹一些流行的Python SSH以及如何使用它們

    Python SSH是一種用于遠程連接和管理Linux服務器的Python。
    的頭像 發表于 04-28 09:46 ?3561次閱讀

    Linux上建立SSH安全連接的10種方法

    建立 SSH 安全連接的方法是通過 SSH (Secure Shell) 協議建立的加密通道,用于在服務器和客戶機之間的安全通信。
    的頭像 發表于 05-29 10:29 ?6205次閱讀

    SSH命令詳解

    ssh是一種安全的遠程登錄及傳輸協議。ssh可用于遠程登錄、遠程文件傳輸等。ssh是安全的she
    的頭像 發表于 06-02 10:00 ?1.7w次閱讀
    <b class='flag-5'>SSH</b><b class='flag-5'>命令</b>詳解

    如何通過SSH連接到Linux計算機?

    的基本概念與工作原理 SSH是一種用于在不可信的網絡中建立安全連接的網絡協議。它能夠通過加密和身份驗證保護遠程訪問和數據傳輸的安全。
    的頭像 發表于 01-12 16:06 ?1501次閱讀

    SSH遠程操作的基本方式

    SSH 是 Linux 下進行遠程連接的基本工具,但是如果僅僅用它登錄那可是太浪費啦!SSH 命令
    的頭像 發表于 11-11 11:15 ?395次閱讀
    <b class='flag-5'>SSH</b><b class='flag-5'>遠程</b>操作的基本方式
    百家乐官网怎么会赢| 红树林百家乐的玩法技巧和规则 | 最新皇冠网| 真人百家乐输钱惨了| 凯旋门百家乐官网游戏| 百家乐平注法口诀技巧| 百家乐官网制胜秘| 财神娱乐城怎么样| 至尊百家乐节目单| 带有百家乐官网的棋牌游戏有哪些| 大发888游戏下载中心| 百家乐看单技术| 顶尖百家乐官网开户| 玩网上百家乐官网的技巧| 足球怎么赌| 百家乐纯技巧打| 大赢家百家乐官网的玩法技巧和规则| 百家乐官网大小点桌子| 澳门博彩娱乐有限公司| 百家乐二十一点游戏| 百家乐官网筹码防伪定制| 顶级赌场官方客户端下载| 正品百家乐游戏| 五星百家乐官网的玩法技巧和规则| 怀集县| 太阳城7778886| 百家乐博送彩金18| 百家乐官网画哪个路单| 平山县| 现金网注册| 破战百家乐的玩法技巧和规则| 24山入门| 查看百家乐官网赌博| 东方夏威夷网站| 马牌百家乐官网的玩法技巧和规则 | 海南太阳城大酒店| 百家乐之三姐妹赌博机| 澳门百家乐官网网40125| 百家乐官网投注平台信誉排行| 恒宝国际| 大发888娱乐场下载专区|