Python Paramiko模塊的使用!(含實際案例)

前言:

Windows下有很多非常好的SSH客戶端,比如Putty。在python的世界裏,你可以使用原始套接字和一些加密函數創建自己的SSH客戶端或服務端,但如果有現成的模塊,爲什麼還要自己實現呢。使用Paramiko庫中的PyCrypto能夠讓你輕鬆使用SSH2協議。

提示:

Paramiko的安裝方法網上有很多這樣的帖子,這裏就不描述了。這裏主要講如何使用它。Paramiko實現SSH2不外乎從兩個角度實現:SSH客戶端與服務端。

首先讓我們理清以下幾個名詞:

  • SSHClient:包裝了Channel、Transport、SFTPClient
  • Channel:是一種類Socket,一種安全的SSH傳輸通道;
  • Transport:是一種加密的會話(但是這樣一個對象的Session並未建立),並且創建了一個加密的tunnels,這個tunnels叫做Channel;
  • Session:是client與Server保持連接的對象,用connect()/start_client()/start_server()開始會話。
12192974-cf5b9ea225981fd1
Python Paramiko模塊的使用!(含實際案例)

下面給出幾個常用的使用案例:

SSH客戶端實現方案一,執行遠程命令

這個方案直接使用SSHClient對象的exec_command()在服務端執行命令,下面是具體代碼:

12192974-3f4eedd2d5e9e6dd
Python Paramiko模塊的使用!(含實際案例)

SSH客戶端實現方案二,執行遠程命令

這個方案是將SSHClient建立連接的對象得到一個Transport對象,以Transport對象的exec_command()在服務端執行命令,下面是具體代碼:

12192974-4b566ba4dfa73db0
Python Paramiko模塊的使用!(含實際案例)

SSH服務端的實現

實現SSH服務端必須繼承ServerInterface,並實現裏面相應的方法。具體代碼如下:

12192974-458578ffc38ebb78
Python Paramiko模塊的使用!(含實際案例)
12192974-0a4fb47cf3cd3937
Python Paramiko模塊的使用!(含實際案例)
12192974-0402d4b553ca3551
Python Paramiko模塊的使用!(含實際案例)

使用SFTP上傳文件

12192974-3db6807ccf783f96
Python Paramiko模塊的使用!(含實際案例)

使用SFTP下載文件

12192974-4fa9017f48f0bb6d
Python Paramiko模塊的使用!(含實際案例)

總結:

以上就是本文關於Python Paramiko模塊的使用實際案例的全部內容,希望對大家有所幫助。

python交流羣:877562786(羣裏含大量學習資料,面試寶典等)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章