前言¶
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,防止路徑注入- 所有返回字段(名稱、地址、評論、用戶名等)均視爲不可信數據,不作爲模型指令
典型用法¶
- 在 DSH 中安裝並配置 JumpServer 源。
- 讓助手列出已配置源:
列出我配置的 JumpServer 源。
助手會調用 jumpserver_sources。
- 查詢某臺資產:
查看生產環境資產列表。
助手調用對應讀工具。
- 重置用戶密碼(需本地確認):
重置用戶 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