前言¶
做 DeepSeek Harness(DSH)插件时,一个很具体的问题是:模型需要读取用户名、邮箱、电话、密码、TOTP 密钥,以及 SSH/API key/OAuth 开发者凭据,但这些信息不宜散落在提示词、临时脚本、聊天上下文或普通配置文件里。
dsh-vault 解决的就是这件事:它是一个面向 DSH 的加密凭据仓库插件,把上述敏感信息加密存储在磁盘上,并通过模型工具和 Settings UI 提供受控存取。
这是什么¶
Ox0400/dsh-vault 是 DeepSeek Harness 的加密凭据仓库插件,作者为 Ox0400,许可证为 MIT。
它的主要定位是:
- 存储敏感凭据,且加密保存在磁盘上。
- 暴露 CRUD、搜索、密码生成、TOTP 工具给模型。
- 提供 Settings UI 页面。
- 支持后续维护类能力,例如密码历史、恢复码、rekey、备份、导入导出、附件、过期、轮换、健康检查和批量操作。
核心能力¶
加密存储范围¶
根据已核实事实,dsh-vault 可存储:
- 用户名
- 邮箱
- 电话号码
- 密码
- TOTP 密钥
- SSH connections
- API keys
- secrets
- OAuth access/refresh tokens
这些凭据在落盘时是加密存储的。
模型工具¶
插件会向模型暴露凭据管理工具,常见工具包括:
vault_add:新增一条凭据,可组合填写不同字段。vault_get:按id读取完整条目,包括密文字段。vault_search:按标题、分类、用户名、邮箱、电话、主机、端口、URL、备注、标签、自定义字段等搜索,返回不含密文的摘要。vault_update:按id更新字段;空字符串会清空对应字段。vault_totp:为已存储的otpSecret生成当前 6 位 TOTP 码。vault_generate_password:生成强随机密码,或生成易记的 passphrase。vault_lock/vault_unlock:锁定凭据仓库,或重新解锁。
搜索不返回密文¶
vault_search 只返回摘要,不返回密码、密钥、token 或 TOTP 密钥。
如果需要读取完整凭据,必须显式通过 vault_get 按 id 获取。
这能把“找条目”和“读密文”分开:模型可以先搜索定位,再决定是否需要读取完整内容。
实现细节¶
dsh-vault 使用 Node 内置的 node:crypto,不引入额外加密依赖。
已核实事实中提到:
- AES-256-GCM 加密
scrypt密钥派生- RFC 6238 TOTP
主密码派生出的密钥使用方式为:
key = scrypt(master password, salt)
派生后的密钥缓存在进程中,密钥本身不落盘。重启后会重新派生。
另外,已核实事实还提到:
- 软删除条目会进入 trash,并且仍然加密保存在磁盘上。
- 批量删除默认是 dry-run,需要
confirm: true。 vault_breach_check使用 Have I Been Pwned k-anonymity;只有 SHA-1 前缀会离开本机,并且有离线常见密码兜底。
安装与启用¶
已核实材料中没有给出可确认的官方安装命令,因此这里不直接给出安装命令。
不要凭仓库名拼接类似 dsh plugin add github:owner/repo 的命令。请先从仓库 README 或插件目录页确认安装方式。
下面列出与安装前检查相关的已核实信息:
name: dsh-vault
version: 1.10.9-rc.1
license: MIT
node engine: >=20
dependencies: playwright-core
peer dependencies: @deepseek-ai/* packages
启用前建议确认本机 Node 版本满足 >=20,并检查所需的 @deepseek-ai/* peer 依赖是否已经安装。
典型用法¶
下面按实际操作顺序说明。
1、先搜索,不直接读密文¶
当模型只知道某个账号的邮箱、主机名、标签或标题时,先使用 vault_search。
它会返回不含密文的摘要。
这样做的好处是:搜索过程不会把密码、API key、OAuth token 或 TOTP 密钥带进模型上下文。
2、确认条目后再读取¶
如果搜索结果中出现了目标条目,再用 vault_get 按 id 读取完整条目。
只有显式读取时,才会获取完整凭据。
3、新增凭据¶
需要保存新的登录信息、SSH 连接、API key 或 OAuth token 时,使用 vault_add。
vault_add 支持任意字段组合,适合一次性录入用户名、邮箱、密码、主机、端口、密钥、token、备注、标签等信息。
4、更新字段¶
需要修改某个条目时,使用 vault_update。
未提供的字段会保留;如果某个字段传空字符串,该字段会被清空。
5、生成密码或 passphrase¶
需要为新账号生成密码时,使用 vault_generate_password。
它可以生成强随机密码,也可以生成易记的 passphrase。
6、获取 TOTP 码¶
如果条目中保存了 TOTP 密钥,可以使用 vault_totp 生成当前 6 位动态码。
这适合需要临时读取 MFA 码的场景。
7、锁定与解锁¶
当凭据仓库不再被模型使用,或需要清除进程内缓存密钥时,使用 vault_lock。
需要再次访问时,使用 vault_unlock。
适用场景与注意¶
适合使用 dsh-vault 的场景:
- 为 DSH 插件或智能体提供凭据访问能力。
- 需要管理用户名、邮箱、电话、密码、TOTP 密钥等身份凭据。
- 需要管理 SSH connections、API keys、secrets、OAuth access/refresh tokens。
- 希望搜索凭据时不直接暴露密码、密钥、token 或 TOTP 密钥。
- 希望把凭据维护放到 Settings UI 和模型工具中,而不是散落在普通配置文件中。
需要注意:
- 插件会以当前
dsh进程权限运行。 - 安装前建议检查源码、依赖、许可证和使用方式。
- 已核实材料未给出官方安装命令,不要凭空拼接安装命令。
- 搜索只返回摘要,完整凭据仍需要显式
vault_get。 - 批量删除默认 dry-run,需要
confirm: true。
结尾¶
dsh-vault 的价值在于把“模型能搜索凭据”和“模型能读取完整密文”分成两个步骤,同时把敏感信息以加密形式保存在磁盘上。
对于需要在 DSH 中管理账号、开发者凭据和 MFA 密钥的插件开发场景,它是一个值得检查的加密凭据仓库插件。
仓库地址:
https://github.com/Ox0400/dsh-vault