前言:
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()開始會話。
下面給出幾個常用的使用案例:
SSH客戶端實現方案一,執行遠程命令
這個方案直接使用SSHClient對象的exec_command()在服務端執行命令,下面是具體代碼:
SSH客戶端實現方案二,執行遠程命令
這個方案是將SSHClient建立連接的對象得到一個Transport對象,以Transport對象的exec_command()在服務端執行命令,下面是具體代碼:
SSH服務端的實現
實現SSH服務端必須繼承ServerInterface,並實現裏面相應的方法。具體代碼如下:
使用SFTP上傳文件
使用SFTP下載文件
總結:
以上就是本文關於Python Paramiko模塊的使用實際案例的全部內容,希望對大家有所幫助。
python交流羣:877562786(羣裏含大量學習資料,面試寶典等)