前言¶
在 DeepSeek Harness(DSH)裏做自動化時,agent 經常要登錄網頁、拉 GitHub 倉庫或在遠程服務器上執行命令。憑據若散落在對話裏、本地筆記或 shell 歷史裏,既難複用,也不利於控制「誰能看到明文」。社區插件 dsh-credential-vault(維護者 adil-bit-hub,分類 admin-security)把網頁登錄、GitHub 與 SSH 憑據集中寫入 Harness 本機憑據存儲,併爲每條記錄寫備註;當前會話和後續會話可通過 agent 工具按名稱取用,列表與提示詞概覽只暴露元數據。
下面介紹插件定位、能力、安裝方式與典型用法,並說明安全模型與配置項。事實以倉庫 README 爲準。
這是什麼¶
dsh-credential-vault 是 DSH 的憑據管理插件:持久化保存在 Host 的憑據存儲中,供 當前會話和之後的每個會話 通過 agent 工具直接讀取(在策略允許的前提下)。支持三類記錄:
- 網頁系統:登錄網址、賬戶、密碼
- GitHub:用戶名、Personal Access Token、提交郵箱(用於 clone / push / 倉庫管理)
- SSH 服務器:主機、端口、登錄用戶,密碼或私鑰(含口令);可用
ssh_exec在遠程執行命令,密碼與私鑰不進入命令行參數
每條憑據可寫 備註,列表可見,也會出現在後續會話的系統提示詞概覽中(僅元數據)。
- 目錄頁:https://www.skillhub.cn/plugins/adil-bit-hub/dsh-credential-vault
- 源碼:https://github.com/adil-bit-hub/dsh-credential-vault
- 許可證:MIT(README 徽章)
- 當前 package 版本:0.1.0(package.json)
核心功能¶
設置頁(設置 → 憑據管家)¶
- 右上角 新增憑據:選類型後填寫名稱、登錄信息與備註。
- 卡片上可 顯示 / 隱藏 密碼或令牌、複製賬號、編輯、刪除(刪除需兩次確認)。
- 按類型篩選,按名稱 / 備註 / 網址 / 主機 / 賬號搜索。
- 編輯時密鑰輸入框留空表示保持不變;點 清除 纔會刪除已保存的值。
Agent 工具¶
| 工具 | 作用 |
|---|---|
credential_list |
列出憑據的名稱、類型、備註、網址 / 主機 / 賬號,永遠不含明文 |
credential_get |
讀取一條憑據;默認掩碼,reveal: true 才返回明文 |
credential_save |
新建或更新憑據 |
ssh_exec |
用已保存的 SSH 憑據在遠程執行命令 |
README 中的示例對話方向:
- 「我們有哪些服務器憑據?」→
credential_list - 「登錄公司 OA 看一下待辦」→
credential_get(reveal=true)後由瀏覽器工具填表 - 「到生產服務器上重啓一下 nginx」→
ssh_exec(憑據id+systemctl restart nginx) - 「把這個 GitHub token 存成『個人倉庫管理』」→
credential_save
GitHub 類型保存用戶名與 PAT。操作倉庫時可用 https://<用戶名>:<token>@github.com/<owner>/<repo>.git 做 git clone,或將 token 交給 gh / git 的 credential helper;令牌僅在 credential_get 且 reveal=true 時出現在工具結果裏。
安裝與啓用¶
本包無運行時依賴,無 npm install / npm run build 步驟;Host 側爲 index.js + src/*,瀏覽器側爲 client.js。
方式一:從 GitHub 安裝(Web profile,推薦)¶
dsh plugin --profile web add github:adil-bit-hub/dsh-credential-vault
桌面端 profile¶
桌面端使用保留 profile desktop,運行時會鎖定該 profile;需 完全退出應用 後再執行:
dsh plugin --profile desktop add github:adil-bit-hub/dsh-credential-vault
圖形界面¶
設置 → 插件 → 添加插件 → 安裝第三方插件,填入 github:adil-bit-hub/dsh-credential-vault(或 clone 後填目錄絕對路徑)→ 安裝 → 立即啓用。
安裝寫入當前 profile,對所有會話生效,重啓後仍在。完成後重啓 dsh web(或重啓 DSH 桌面端),打開 設置 → 憑據管家,點 新增憑據 即可錄入。
本地開發安裝見 README「方式二」;生產環境以 GitHub 安裝命令爲準即可。
安全模型與配置¶
明文保存在 Host 憑據存儲 $DSH_HOME/.credentials.yaml 的 records 下,鍵爲 dsh-credential-vault/<id>;由 Harness 以僅當前系統用戶可讀權限原子寫入,插件不另存副本。列表、搜索、提示詞概覽只有元數據;設置頁明文僅在點擊 顯示 時按字段取回。
credential_get 使用 reveal=true 時,明文會進入 本次會話日誌;可通過配置關閉 agent 讀取明文(ssh_exec 仍可用,因密碼不離開 Host)。
cordis.patch.yml(可在 profile 用戶 patch 層覆蓋):
- id: credential-vault
name: dsh-credential-vault
config:
promptSummary: true # 在系統提示詞裏追加憑據概覽(只有元數據)
maxPromptEntries: 12 # 概覽最多列多少條
allowAgentReveal: true # 允許 credential_get reveal=true 返回明文
allowAgentWrite: true # 允許 credential_save 新建/更新
sshTimeoutMs: 60000 # ssh_exec 默認超時
瀏覽器側經 Harness Connection 准入檢查訪問 Host /credential-vault;未認證返回 401。頁面 cache-control: no-store,不緩存憑據響應。
適用場景與注意¶
適合需要在多輪 DSH 會話中 複用 網頁、GitHub、SSH 登錄信息,且希望 agent 通過工具按名取用、而不是每次粘貼明文的開發者或運維場景。
安裝第三方插件前,應自行審閱源碼與 MIT 許可證;插件以 當前 dsh 進程權限 運行,憑據文件權限取決於本機用戶賬戶。生產環境建議結合 allowAgentReveal / allowAgentWrite 收緊策略,並理解 reveal=true 會寫入會話記錄。
常見故障:設置裏沒有「憑據管家」→ 確認插件已啓用並刷新;無 credential_* 工具 → 確認插件 active 並 新開會話;ssh_exec 報 ssh-unsupported(Windows 缺 csc.exe)→ 改用密鑰登錄;詳見 README 故障排查表。
Host 側自檢(不聯網、不碰真實憑據文件):
cd dsh-credential-vault
node test/self-test.mjs
結尾¶
dsh-credential-vault 把網頁、GitHub 與 SSH 憑據集中到 Harness 本機存儲,用備註說明用途,並通過 credential_list / credential_get / credential_save / ssh_exec 供後續會話使用;安全設計上區分元數據與明文、並支持限制 agent reveal 與寫入。
- 社區目錄:https://www.skillhub.cn/plugins/adil-bit-hub/dsh-credential-vault
- GitHub:https://github.com/adil-bit-hub/dsh-credential-vault
DSH 生態以「一切皆插件」爲方向;SkillHub 等社區目錄爲獨立站點,與 DeepSeek / 幻方無官方從屬關係,安裝與審閱源碼仍由使用者自行負責。