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