只读 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。
兼容性
| 字段 | 值 |
|---|---|
| 插件 | dsh-wsl-secret 0.2.0 |
| 最低 dsh | ≥ 0.1.2(Web UI 一次性 ?token=,Windows 中继 :3081) |
| 最新验证 | 以 dsh-wsl-kit 兼容性 为准(当前 0.2.2-rc.1)— 套件唯一真源 |
| 套件档位 | 可选(默认不在 install.sh / KIT_SET=daily) |
License
MIT
链接
同类插件
6Mikao9/dsh-wsl-workspace★ 106
从 Web GUI 添加 WSL 工作区,无需在 WSL 之中再次安装 dsh 以及相关工具,bash 命令与文件读写运行在本机 WSL 发行版内,Windows 文件仍可访问。
XINY11451/dsh-wsl★ 10
将 DSH 的工作范围扩展到 WSL。插件支持了发行版中的文件直接被 DSH 读取、写入、编辑与搜索。面对不同任务需求,AI可根据任务需求自行选择执行一次性命令/自建终端执行多条命令以完成任务。支持在 WSL 终端中键入 dsh 命令调用 DSH(详情在 WSL 终端键入dsh help),深度融合了 WSL 与 DSH。用户新建的所有终端支持与AI可视化协作。
Edge-Echo/dsh-win-toolkit★ 4
面向 DSH agent 的 Windows 原生工具:剪贴板读写、系统通知、hosts 文件查看与网络诊断,均返回结构化数据(带 UI 卡片),底层为防注入的 PowerShell。
173787247/dsh-wsl-env★ 3
向 system prompt 注入 WSL 发行版、Linux 路径映射、/mnt/c 的 CRLF 与 git 注意点,以及 NODE_USE_ENV_PROXY。
173787247/dsh-wsl-open★ 3
把 DeepSeek Harness 聊天里的 WSL Linux 路径在 Windows 默认程序或资源管理器中打开。
Han-1413141/dsh-wsl-native★ 3
在同一个 Windows 窗口中使用 Windows 与原生 Linux DSH 会话,支持 WSL 环境切换和双向系统操作。
社区评论
评论公开保存在 GitHub Discussions。加载评论会连接 GitHub 和 Giscus;发表内容需要 GitHub 账号。