在 DeepSeek Harness(DSH)的插件化生态中,API 密钥的管理与安全暴露是智能体开发中的高频痛点。手动管理或硬编码在配置文件中不仅效率低下,还容易在对话上下文或工具输出中无意泄露敏感信息。dsh-keyring 插件通过自动脱敏与全局收纳机制,解决了这一问题,为 DSH 提供了一个跨重启持久的密钥管理方案。
插件定位¶
dsh-keyring 是 DeepSeek Harness(DSH)的密钥保险库插件,由开发者 re-ITRT 维护。它属于 admin-security 类别,采用 MIT 许可证。该插件以官方 profile bundle(npm 包)形态存在,支持密钥自动脱敏、自动收纳进全局密码本、设置页 UI 管理以及跨重启持久化。
核心功能¶
1. 密钥自动脱敏与收纳¶
插件内置脱敏引擎,覆盖常见的敏感前缀与格式,参照 Hermes 规则实现。当密钥出现在用户消息(agent/pre-step)或工具输出(tools/post-execute)中时,会自动进行遮罩处理,同时将原文收纳进全局密码本。
支持的敏感项包括:
* 厂商前缀:ghp_ / github_pat_ / gho_、sk- / sk-ant-、AIza、AKIA、xox* / xapp-、hf_、glpat- 等。
* 赋值形态:环境变量(KEY=value)、YAML/JSON 字段(password、apiKey)、请求头(Authorization:、x-api-key:)。
* 其他:数据库连接串密码、URL 裸 token。
遮罩规则:
* 短 token(<18 字符):整段显示为 ***。
* 长 token:保留前 6 位和后 4 位,中间用 **** 替代。
2. 双层存储¶
插件支持两种作用域的存储,满足不同场景需求:
* 全局存储(scope=global): 跨会话、跨重启持久。数据存储于 dsh 凭据文件(.credentials.yaml),文件权限设为 0600。
* 会话级存储(scope=session): 仅存在于当前会话内,不写入全局文件。当会话结束或清理时,条目自动消失。
3. 模型工具¶
插件提供四个模型工具,供 Agent 调用:
* keyring_store:保存或更新密钥。
* keyring_get:获取密钥原文,供当前操作使用。
* keyring_list:列出键名及元数据,不返回值。
* keyring_unset:删除指定密钥。
4. 设置页「密码本」¶
在 DSH 的 Web 界面中,可通过「设置 → 密码本」访问该功能。
* 管理: 支持新增、编辑、删除全局条目。
* 交互: 支持显示/隐藏原文、一键复制、生成随机强密码。
* 样式: 跟随 DSH 主题,支持深浅色模式适配,且提供中英双语文案。
安装与启用¶
以官方 profile bundle 形态安装,重启 dsh web 后自动加载。
dsh plugin --profile web add dsh-keyring
安装完成后,插件会自动加入 dsh.profile.bundles,重启 dsh web 即可生效。
典型用法¶
使用工具管理密钥¶
Agent 可以直接调用模型工具进行操作。
# 保存密钥
keyring_store(scope="global", key="GITHUB_TOKEN", value="ghp_xxxxx")
# 获取密钥
token = keyring_get(scope="global", key="GITHUB_TOKEN")
# 列出所有键
keys = keyring_list(scope="global")
# 删除密钥
keyring_unset(scope="global", key="GITHUB_TOKEN")
通过 UI 管理凭据¶
- 打开 DSH Web 界面。
- 进入「设置」菜单。
- 点击「密码本」选项卡。
- 在列表中查看全局条目,点击「复制」或「显示/隐藏」进行操作。
注意事项¶
- 存储安全性: 插件不做真加密存储,仅通过文件系统权限保护(0600)来防止未授权访问。请确保系统用户权限安全。
- 密钥轮换: 不提供密钥的自动失效或轮换机制,需要手动管理。
- URL Token: Web URL 查询参数里的 token 默认不脱敏,以支持合法的 OAuth 回调场景(与 Hermes 行为一致)。
- 会话清理: 不自动清理会话级条目,条目随会话生命周期自然消失。
总结¶
dsh-keyring 是 DSH 生态中处理敏感信息的实用工具。它通过自动脱敏和双层存储机制,在保障开发便利性的同时,降低了密钥泄露的风险。开发者可以通过 CLI 工具或 Web UI 统一管理凭据,适合需要在智能体开发中频繁切换或处理多种 API 密钥的场景。
相关链接:
* 插件目录:https://www.skillhub.cn/plugins/re-ITRT/dsh-keyring
* GitHub 仓库:https://github.com/re-ITRT/dsh-keyring