Saltar al contenido principal
1

dsh-wsl-secret

173787247/dsh-wsl-secret

Read-only pass / age secrets with allowPrefixes; reveal defaults to false.

Instalar

dsh plugin --profile web add github:173787247/dsh-wsl-secret

README

dsh-wsl-secret

语言: 中文(本页) · English

在 DSH(Cordis)里安全读取 pass / age 密钥。

npmdsh-wsl-secret
环境WSL/Linux,PATH 上有 pass 和/或 age
默认不配 allowPrefixes 就读不了(故意的)
对比dsh-wsl-cred = Git 凭据提示;本插件 = 应用 API Key

为什么要单独插件

  • dsh-wsl-cred → 只给 Git 推送/拉取的凭据提示
  • dsh-wsl-secret → OpenRouter、Discord Bot Token 等应用密钥

secret_status 显示 ready=false = 已安装但未配置,属正常安全默认。

5 分钟上手

1. 装工具(一次)

sudo apt install pass age
# 需要时: pass init <gpg-id>

2. 密钥放在同一前缀下

pass insert dsh/openrouter
pass insert dsh/discord-bot

3. Cordis 放行该前缀

编辑 profile 的 cordis.patch.yml(例如 ~/.dsh/profiles/web/cordis.patch.yml):

plugins:
  dsh-wsl-secret:
    enabled: true
    path: /mnt/c/Users/你/Desktop/AIFullStackDevelopment/dsh-wsl-secret
    config:
      allowPrefixes:
        - dsh
        # - ~/secrets          # age 用文件系统根
      reveal: false
      timeoutMs: 15000

重启 / 重载 profile。

4. 推荐工具链

步骤工具结果
检查secret_statusready=true
列举secret_pass_list只有名字
确认secret_pass_exists{ exists: true }
使用secret_to_env写入 process.env,聊天里只有 preview
可选secret_pass_get预览(少用;勿开 reveal)
{ "name": "secret_to_env", "arguments": {
  "name": "dsh/openrouter",
  "envKey": "OPENROUTER_API_KEY"
}}

之后同一 dsh 进程内其它工具可读 process.env.OPENROUTER_API_KEY。

工具一览

工具作用
secret_statuspass/age、allowlist、ready
secret_pass_list只列名字
secret_pass_exists是否存在
secret_to_env首选 pass → 环境变量
secret_pass_get预览读取
secret_age_to_envage → 环境变量
secret_age_decryptage 解密(预览)

安全模型(摘要)

  1. 空 allowPrefixes → 全部拒绝
  2. pass 名必须匹配前缀(dsh → dsh/...)
  3. age 路径必须在列表里的目录根下
  4. 默认 reveal: false,结果不含完整密钥
  5. 优先 secret_to_env,避免把明文塞进模型上下文
  6. 永远不要把密钥贴进聊天

更细的英文说明见 README.en.md。

兼容性

字段值
插件dsh-wsl-secret 0.2.0
最低 dsh≥ 0.1.2(Web UI 一次性 ?token=,Windows 中继 :3081)
最新验证以 dsh-wsl-kit 兼容性 为准(当前 0.1.7-alpha.2)— 套件唯一真源
套件档位可选(默认不在 install.sh / KIT_SET=daily)

License

MIT

Plugins relacionados