DeepSeek Harness 集成 JumpServer 插件

前言

DeepSeek Harness(DSH)以「一切皆插件」爲理念,插件是擴展智能體能力的基本單位。在運維場景中,如果希望智能體通過對話直接操作 JumpServer 資產、用戶、權限等,需要插件在 DSH 進程中實現與 JumpServer REST API v1 的通信。we39/dsh-jumpserver 插件提供了這套能力,支持通過 AccessKeyID/AccessKeySecret 進行 HTTP Signature 認證,並將所有敏感信息(密碼、密鑰、MFA、私鑰等)在返回前脫敏。

這是什麼

we39/dsh-jumpserver 是一個 DeepSeek Harness 插件,用於通過對話查詢和管控 JumpServer 資產。維護者爲 we39。它通過 AccessKey/SecretKey 對(HTTP Signature 方式)與 JumpServer 對話,支持讀/寫 54 個工具,所有寫操作需要本地用戶確認。

核心功能

插件提供 54 個工具,分爲 11 個域:

  • Sources:列出已配置的 JumpServer 源(只讀)
  • Assets:資產詳情、創建、更新、刪除
  • Users:用戶詳情、創建、更新、刪除,以及密碼/MFA/SSH 密鑰重置
  • Accounts:資產賬號詳情、創建、更新、刪除
  • Permissions:資產權限規則詳情、創建、更新、刪除
  • Sessions & Audit:終端會話、命令審計日誌
  • User Groups:用戶組詳情、創建、更新、刪除
  • Command Groups:命令模式組詳情、創建、更新、刪除
  • Command Filters:安全過濾規則詳情、創建、更新、刪除
  • Asset Tree:資產樹節點詳情、創建、更新、刪除、移動
  • RBAC:角色與綁定詳情、創建、更新、刪除

所有寫操作觸發本地用戶確認,模型無法繞過。讀操作返回的字段中,賬號密碼、用戶密碼、公鑰、MFA 密鑰、賬號短語等均被脫敏。

安裝與啓用

插件需要 DeepSeek Harness 0.2.0-rc.1 到 0.2.1-rc.2(及後續 0.2.1 預發佈版本)和 Node.js 20.11 或更新版本。

從本地路徑安裝(本地開發):

npm ci
dsh plugin --profile add link:/absolute/path/to/dsh-jumpserver

從 GitHub 安裝已發佈版本(推薦):

dsh plugin --profile add github:we39/dsh-jumpserver#v<version>

從 GitHub 安裝開發分支(僅用於測試):

dsh plugin --profile add github:we39/dsh-jumpserver

安裝後重啓選定的 DSH 配置文件(profile)。在 Windows 上,本地路徑需使用絕對路徑,例如 link:C:/path/to/dsh-jumpserver。

配置

在 DSH 中打開 Settings → JumpServer(DeepSeek Harness 0.2.0+ 在左側導航獨立區域;0.1.7 在 Settings → Plugins 的 JumpServer 選項卡;0.1.5 及更早版本在 Settings → Plugins 的卡片中)。

該頁列出 JumpServer 源。添加每臺 JumpServer 的一個源,每個源包含:

  • Source name:必填且唯一,用於選擇源(任意語言)
  • UID:自動生成,全局唯一且只讀,憑據以 UID 爲鍵
  • JumpServer URL:絕對基礎 URL,例如 https://jumpserver.example.com
  • Access Key / Secret Key:在 JumpServer 控制台的「個人 API Key」列表中創建

將一個源標記爲默認;未指定 source 的工具調用使用默認源。只有一個源時自動爲默認。

AccessKey/SecretKey 通過 DSH 的特權迴環憑據 RPC 傳遞,寫入-only,存儲後不會被讀取或顯示。名稱、URL 和默認設置以非密鑰形式保存在 jumpserver 配置命名空間。

插件配置項:

allowInsecureHttp: false

設置爲 false 可強制只允許 HTTPS(所有源)。

多源管理

每個工具接受可選的 source 參數(源名稱或 UID)。要求助手說「staging JumpServer」時,助手會調用 jumpserver_sources 列出名稱,然後傳遞 source。若存在多個源且無默認,省略 source 會報錯而非猜測。

寫工具的確認提示會顯示目標源,確認與該源綁定:若默認在確認與執行之間改變,寫操作會被拒絕而非發送到其他 JumpServer。

從 0.11.x 升級時,現有單源配置保持可用。首次啓動時插件將其轉爲名爲 default 的源,重用已存儲的 AccessKey/SecretKey(不重新輸入)。若自動轉換失敗,設置頁顯示「Legacy single-source configuration found」及「Import as a source」按鈕。

權限與安全

創建 AccessKey 的 JumpServer 賬號應僅對助手可見的資產擁有讀權限,避免使用超級管理員賬號的 Key。

安全措施:

  • AccessKeySecret 永不進入工具參數、模型消息、日誌或 Git
  • 賬號密碼、用戶密碼/公鑰/MFA 密鑰在所有讀工具返回中被逐字段排除
  • 認證請求拒絕 HTTP 重定向,避免將簽名請求轉發到其他源
  • 默認禁用非迴環 HTTP(allowInsecureHttp)
  • 請求支持協同取消、超時和有界響應大小
  • 錯誤響應僅返回有界的狀態/詳情描述
  • id 參數在放入請求路徑前校驗爲 JumpServer UUID,防止路徑注入
  • 所有返回字段(名稱、地址、評論、用戶名等)均視爲不可信數據,不作爲模型指令

典型用法

  1. 在 DSH 中安裝並配置 JumpServer 源。
  2. 讓助手列出已配置源:
列出我配置的 JumpServer 源。

助手會調用 jumpserver_sources。

  1. 查詢某臺資產:
查看生產環境資產列表。

助手調用對應讀工具。

  1. 重置用戶密碼(需本地確認):
重置用戶 admin 的密碼爲 Test1234。

助手調用寫工具,本地彈出確認框,用戶確認後執行。

適用場景與注意

適合需要通過對話式智能體查詢或管控 JumpServer 資產的用戶,尤其是多源、強權限控制的運維場景。使用前請檢查源碼與許可證。

插件以當前 DSH 進程權限運行,請確保配置的 JumpServer 憑據權限最小化。

結尾

we39/dsh-jumpserver 將 JumpServer 的 REST API 能力接入 DSH 插件體系,通過對話實現資產查詢與管控,配合本地確認與字段脫敏,適合需要精細化權限控制的運維場景。

目錄頁:https://www.skillhub.cn/plugins/we39/dsh-jumpserver
GitHub:https://github.com/we39/dsh-jumpserver

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜