DSH Plugins
返回列表
🧩

dsh-keychain-credentials

admin-security 更新于 2026.09.29

在终端中运行以下命令:

dsh plugin install nengong-ai/dsh-keychain-credentials

将以下提示词粘贴到 DeepSeek Harness 对话框中:

在 DeepSeek Harness 中执行 dsh plugin install nengong-ai/dsh-keychain-credentials 安装插件(开源地址:https://github.com/nengong-ai/dsh-keychain-credentials),安装后由 bundle 的 cordis.patch.yml 禁用默认本地凭证提供者并挂载本插件。

插件介绍

DeepSeek Harness 默认的 dsh-credentials-local 会把密钥写在 $DSH_HOME/.credentials.yaml 里,权限虽能挡住其他系统用户,却挡不住同一用户下的模型与工具:bash、读文件、grep 等都能像读普通文件一样拿到明文。本插件把机密迁到 macOS 登录钥匙串,密钥不再以磁盘文件形式存在,也就不会被常规「读文件」类手段顺手带走,也不会掉进备份、同步目录或误提交 git。

它完整实现 ctx.credentials 的两半:refs(API 密钥等引用)与 records(结构化凭证,例如 client-connection、browser-session 授权)。不少同类方案只做了 refs,DSH 自己的会话类记录仍会落回明文文件;这里是纯 JavaScript,无需 Swift、签名或 Xcode,读写过程也不会弹出 Touch ID 或密码(有意为之的取舍)。

需要诚实看待边界:登录钥匙串在解锁状态下,同用户进程仍可通过 /usr/bin/security 无提示读取条目;若 Agent 拥有不受限 shell 且知道去查钥匙串,仍可能外泄。安全门槛从「任意读原语」抬高到「须以同用户执行 security CLI」,是实质改进而非绝对隔离;配合限制子进程的沙箱会更稳,硬边界则需 OS 级分离(如带私有访问组的 broker 或独立系统用户)。

适合在 macOS 上跑 DSH、希望把凭证从可 cat 的 yaml 挪进钥匙串、并要 refs 与 records 一并托管的开发者与运维;也适合已理解上述 trade-off、愿意用钥匙串换一层防护、又不想每次操作都弹认证提示的用户。

使用场景

  • 希望 API 密钥不再落在可被工具直接读取的明文 yaml 文件
  • 需要在 macOS 上同时托管 refs 与 records 两类 DSH 凭证
  • 本地开发或桌面环境跑 DSH,且机器已登录解锁钥匙串

适合人员

  • 在 macOS 上使用 DeepSeek Harness 的开发者
  • 关注 Agent 工具进程能否读到本地密钥的安全从业者
  • 不想每次读写凭证都弹 Touch ID 的 DSH 用户