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 / 幻方无官方从属关系,安装与审阅源码仍由使用者自行负责。

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

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

小夜