1. 程式人生 > >基於django的webssh實現

基於django的webssh實現

所需技術:
  websocket 目前市面上大多數的 webssh 都是基於 websocket 協議完成的
  django-channels django 的第三方外掛, 為 django 提供 websocket 支援
  xterm.js 前端模擬 shell 終端的一個庫
  paramiko python 下對 ssh2 封裝的一個庫

如何將所需技術整合起來?
  1、xterm.js 在瀏覽器端模擬 shell 終端, 監聽使用者輸入通過 websocket 將使用者輸入的內容上傳到 django
  2、django 接受到使用者上傳的內容, 將使用者在前端頁面輸入的內容通過 paramiko 建立的 ssh 通道上傳到遠端伺服器執行
  3、paramiko 將遠端伺服器的處理結果返回給 django
  4、django 將 paramiko 返回的結果通過 websocket 返回給使用者
  5、xterm.js 接收 django 返回的資料並將其寫入前端頁面

流程圖:
基於django的webssh實現

具體實現:
  https://github.com/huyuan1999/django-webssh