只读 pass / age 密钥(需 allowPrefixes);默认不明文回显。
安装
# GitHub 源码(首次需按提示配置 allowBuilds 构建授权后重试)
dsh plugin --profile web add github:173787247/dsh-wsl-secret
装任何插件都等于在你的机器上跑第三方代码,权限和你本人一样大——能读你的文件、用你的凭据、访问网络,工具审批管不到它。GitHub 来源的插件还会在安装时执行构建脚本——pnpm 默认拦截,所以安装可能停在 ERR_PNPM_GIT_DEP_PREPARE_NOT_ALLOWED 或 ERR_PNPM_IGNORED_BUILDS;dsh 会打印出需要添加的确切键名,把它加进该 profile 的 pnpm-workspace.yaml 的 allowBuilds 下,重跑一次即可装上。放行构建本身就是一次信任判断:请只安装可信来源,并尽量锁定 commit(github:owner/repo#sha)。
README
语言: 中文(本页) · 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。
License
MIT
链接
同类插件
6Mikao9/dsh-wsl-workspace★ 52
从 Web GUI 添加 WSL 工作区,无需在 WSL 之中再次安装 dsh 以及相关工具,bash 命令与文件读写运行在本机 WSL 发行版内,Windows 文件仍可访问。
173787247/dsh-wsl-open★ 3
把 DeepSeek Harness 聊天里的 WSL Linux 路径在 Windows 默认程序或资源管理器中打开。
173787247/dsh-wsl-env★ 2
向 system prompt 注入 WSL 发行版、Linux 路径映射、/mnt/c 的 CRLF 与 git 注意点,以及 NODE_USE_ENV_PROXY。
173787247/dsh-wsl-net★ 2
提供 net_doctor 工具,报告代理环境、NODE_USE_ENV_PROXY,以及 DeepSeek API 与 npm registry 的连通性,并为 bash 和 npm 子进程设置 NODE_USE_ENV_PROXY。
Edge-Echo/dsh-win-toolkit★ 2
面向 DSH agent 的 Windows 原生工具:剪贴板读写、系统通知、hosts 文件查看与网络诊断,均返回结构化数据(带 UI 卡片),底层为防注入的 PowerShell。
liyu34/dsh-wsl-tray★ 2
为运行在 WSL 的 DSH 提供 Windows 桌面快捷方式和系统托盘启动器:完全隐藏启动,托盘菜单支持打开/重启/退出,插件配置页可管理快捷方式。
社区评论
评论公开保存在 GitHub Discussions。加载评论会连接 GitHub 和 Giscus;发表内容需要 GitHub 账号。