dsh-credential-vault:DeepSeek Harness 憑據管家

前言

在 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 在遠程執行命令,密碼與私鑰不進入命令行參數

每條憑據可寫 備註,列表可見,也會出現在後續會話的系統提示詞概覽中(僅元數據)。

核心功能

設置頁(設置 → 憑據管家)

  1. 右上角 新增憑據:選類型後填寫名稱、登錄信息與備註。
  2. 卡片上可 顯示 / 隱藏 密碼或令牌、複製賬號、編輯、刪除(刪除需兩次確認)。
  3. 按類型篩選,按名稱 / 備註 / 網址 / 主機 / 賬號搜索。
  4. 編輯時密鑰輸入框留空表示保持不變;點 清除 纔會刪除已保存的值。

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 與寫入。

DSH 生態以「一切皆插件」爲方向;SkillHub 等社區目錄爲獨立站點,與 DeepSeek / 幻方無官方從屬關係,安裝與審閱源碼仍由使用者自行負責。

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

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

小夜