READMESource: master@2667ec02
dsh-wsl-secret
语言: 中文(本页) · English
在 DSH(Cordis)里安全读取 pass / age 密钥。
| npm | dsh-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_status |
ready=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_status |
pass/age、allowlist、ready |
secret_pass_list |
只列名字 |
secret_pass_exists |
是否存在 |
secret_to_env |
首选 pass → 环境变量 |
secret_pass_get |
预览读取 |
secret_age_to_env |
age → 环境变量 |
secret_age_decrypt |
age 解密(预览) |
安全模型(摘要)
- 空
allowPrefixes→ 全部拒绝 - pass 名必须匹配前缀(
dsh→dsh/...) - age 路径必须在列表里的目录根下
- 默认
reveal: false,结果不含完整密钥 - 优先
secret_to_env,避免把明文塞进模型上下文 - 永远不要把密钥贴进聊天
更细的英文说明见 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
No comments yet. Be the first to write one.