dsh-lab

DSH PLUGIN安全与权限

仓库 M-eang/dsh-lab · npm dsh-lab

安全与权限 未标注验证等级 安全审查:未标注 可信度:未标注 可安装插件
安装这个插件

为 DeepSeek Harness 提供实验室控制面板,集中管理 SSH 隧道、识别并清理孤儿监听端口、发现远端服务。

一句话选型结论

按资料字段整理

dsh-lab 是安全与权限类的 DSH 可安装插件,未做沙盒验证,暂无安全审查结论,列出 5 项功能,有可直接复制的安装命令。验证通过不等于安全:插件会读写文件、执行命令或联网,装前先到仓库确认它做了什么;涉及密钥或系统权限的,建议先在隔离环境试装。

分类安全与权限 收录类型可安装插件 验证等级未标注验证等级 安全审查未标注
验证等级 UNKNOWN 未标注验证等级
GitHub 星标 0 复刻 0 · 未关闭 issue 0
最近更新 2026-11-14 创建于 2026-11-14
README 3.9 KB 正文体量,越大说明说明书写得越细

安装

可安装插件
在 DSH 里执行,装完用 dsh plugin list 确认已挂上;标了 L4 / L5 的命令已在沙盒里真实跑通
dsh plugin --profile web add github:M-eang/dsh-lab
  1. 1
    确认版本与运行环境

    仓库没有标注兼容版本与 Node.js 要求,先确认你的 DSH 版本能装,再继续。

  2. 2
    执行安装命令

    在 DSH 里执行上面的命令;多包仓库要注意区分具体子包名,别装错包。

  3. 3
    确认已挂载

    用 dsh plugin list 查看列表里是否出现这个插件,出现即挂载成功。

  4. 4
    试跑并检查权限

    加载后跑一个最小用例,确认它能正常工作;同时看它申请了哪些文件、命令或网络权限。

兼容 DSH 版本未标注版本不匹配时安装会报错
Node.js 要求未标注来自仓库 package.json 的 engines 字段
前置依赖react@*、react-dom@*需要同时安装的同级依赖
npm 包名dsh-lab可用 npm view 查看包信息

能做什么

5 项功能
字段来自项目仓库与公开索引,中文说明由本站标注

dsh-lab:DeepSeek Harness 的 SSH 隧道与远端服务控制室

  • 状态栏显示隧道与孤儿数
  • 一键开关 SSH 隧道
  • 识别并杀掉孤儿监听
  • 扫描远端服务端口
  • 卸载时自动清理隧道

上游标签

deepseek-harnessdshdsh-pluginsandbox

验证等级与安全审查

未标注验证等级
自动化流程结论,不是人工审核
验证等级未标注验证等级上游未给出验证结论,安装前请自行确认
安全审查未标注静态分析结论,未标注不代表已通过审查
仓库健康度未标注按仓库活跃度与最近更新时间给出
可信度未标注综合仓库活跃度与验证结果

选择建议

装之前先看这几条
按条目字段给出的判断,不替你决定用不用

值得选的地方

  • 有可直接复制的安装命令,不用自己翻文档找入口。
  • 列出了 5 项功能,能直接看出它解决什么问题。

先想清楚的地方

  • 安全审查还没结论,装之前先看仓库改了什么、要什么权限。
  • 需要同时装好同级依赖,漏装会启动失败。
  • 没有声明 Node.js 版本要求,版本不匹配可能装不上。
  • 验证通过不等于安全:插件会读写文件、执行命令或联网,装前先到仓库确认它做了什么。

更适合

  • 需要在安全与权限场景里给 DSH 补能力的人。
  • 能接受在本地装依赖、愿意自己确认权限的人。

不太适合

  • 只使用 DSH 官方内置能力、不接受第三方插件的人。

同类对比

6 个同类
同分类里挑最接近的几条,字段以各自详情页为准
插件验证等级安全审查星标兼容版本安装命令
dsh-lab当前 未做沙盒验证 未标注 0 未标注 有
dsh-infinite-gen-4 未做沙盒验证 未标注 1,611 未标注 无
cc-safety-net 未做沙盒验证 未标注 1,591 未标注 无
dsh-wallpaper-engine L5 · 运行验证通过 低风险 1,018 0.2.0-rc.2 等 10 个 有
api-relay-audit L5 · 运行验证通过 低风险 875 0.2.0-rc.2 等 10 个 有
hol-guard L4 · 沙盒安装通过 不在扫描口径 828 未标注 有

仓库档案

安全与权限
字段来自项目仓库与公开索引,中文说明由本站标注
作者 / 维护方M-eang仓库 dsh-lab · 默认分支 main
分类安全与权限admin-security
收录类型可安装插件声明了 dsh.bundle、可用 dsh plugin add 安装的条目
开发语言TypeScript仓库主语言
许可证MIT商用或二次分发前请确认条款原文
星标 / 复刻 / issue0 / 0 / 0收录时的数值,非实时
创建 / 更新2026-11-14 · 2026-11-14最后推送 2026-11-14
本站收录2026-11-14首次进入本站目录的时间

README 全文

3.9 KB
作者原文,中文版优先;只做安全转义,不改内容

dsh-lab

给 DSH 的一间「实验室控制室」:把笔记本(Linux 实验机)上的东西摆到工作台边上,看得见、点得动。

写这个插件的起因很具体:有一条 ssh -f 开的隧道在 3888 端口上跑了几个小时,
谁都想不起来它是什么、也不敢乱杀。孤儿进程的问题不在于难修,而在于看不见。

它做什么

装好以后,输入框上方会出现一条细状态栏:

● 实验室  1 隧道  1 孤儿  13 远端服务      [实验室面板]

点开面板,四块内容:

区块 内容 能做什么
我的隧道 本机端口 → 远端 host:port、PID、存活时长、状态点 打开、停止
孤儿监听 本机 ssh 进程开着但插件不认识的端口 一键杀掉
笔记本上的服务 远端 ss -lntp 的端口 + 进程名 一键开隧道
手动开隧道 本地端口 → 远端端口 开、全部停止

孤儿那一行标红,就是为了让「我忘了还开着一个」这件事在出事之前被看见。

它是怎么做到不乱留进程的

  • 每个隧道都是插件的直接子进程:spawn(ssh, ['-N', '-L', ...]),不带 -f。
    ssh -f 会 fork 到后台并丢掉句柄,那正是当初那条孤儿隧道的成因。
  • 子进程句柄存在进程内的 manager 里(挂在 globalThis 上,热更新也不会忘),
    stop 随时可用。
  • 插件卸载或 DSH 退出时,ctx.effect 的清理函数会 stopAll()——隧道跟 UI 同生共死。
  • 启动后等 900ms 再探一次端口:起不来就把 ssh 的 stderr 原文显示出来,而不是留一条假装在跑的记录。

安装

# 1) 把包链接进 profile
cmd //c "mklink /D C:\Users\\.dsh\profiles\desktop\node_modules\dsh-lab D:\path\to\dsh-lab"

# 2) profile/package.json
#    dependencies 里加  "dsh-lab": "link:D:/path/to/dsh-lab"
#    dsh.profile.bundles 里加  "dsh-lab"

# 3) 重启 DSH

配置

键 默认 说明
host lab ~/.ssh/config 里的 Host 别名
suggestedRemotePorts [3000, 5173, 8000, 8888] 面板里作为建议项列出的远端端口

环境变量 DSH_LAB_HOST 会覆盖 host,方便临时指到另一台机器。

安全

所有路由挂在 /lab 前缀下,并且只认 loopback:

  • socket 必须是 127.0.0.1 / ::1
  • Host 与 Origin(若有)必须是 loopback 主机名
  • POST body 上限 16 KB

因为这些路由能 spawn 进程,不能开给局域网。

开发

# 构建两半(host → lib/index.js,browser → lib/client.js)
node scripts/build.mjs

# 真机自检:扫本机监听、扫远端服务、解析 fixture、探端口
node scripts/selfcheck.mjs

这台机器上没有全局 node,可以用 DSH 自带的 Electron 当 node:

ELECTRON_RUN_AS_NODE=1 "/d/DeepSeek Harness/DeepSeek Harness.exe" scripts/build.mjs

两半不是同一种模块格式

这一条踩错了不会报错,只是「装了没反应」,所以写清楚:

半 格式 加载方
host(lib/index.js) 普通 ESM cordis 用 import() 加载
client(lib/client.js) CommonJS,外面裹一层 window.__ModuleLoader__.load({ id, factory }) web 壳给 factory 传一个 require,能解析 react / react-dom / react/jsx-runtime

所以 scripts/build.mjs 里 client 用 --format=cjs 配 banner/footer 包壳,而不是 --format=esm。

路由

方法 路径 作用
GET /lab/state 全量状态(?remote=1 强制刷新远端扫描)
POST /lab/tunnel {localPort, remotePort, remoteHost?} 开隧道
POST /lab/stop {id} 停一条
POST /lab/kill {pid} 杀任意进程(用于孤儿)
POST /lab/stop-all 全停

远端扫描有 15 秒缓存;UI 每 5 秒轮询一次。

常见问题

8 问
答案由本站依据条目字段整理,不引用上游原文
dsh-lab 怎么安装?

在 DSH 里执行 `dsh plugin --profile web add github:M-eang/dsh-lab` 即可。对应的 npm 包名是 `dsh-lab`。

dsh-lab 的验证等级是什么意思?

未标注验证等级。上游未给出验证结论,安装前请自行确认

dsh-lab 安全吗?

未标注。

dsh-lab 装之前要先确认什么?

先看它会读写哪些文件、执行哪些命令、连接哪些网络地址;验证等级只说明装得上、跑得起来,不等于安全。涉及密钥或系统权限的,建议先在隔离环境试装。

dsh-lab 需要什么运行环境?

需要同时安装 react@*、react-dom@*。环境不满足时安装会失败,建议先确认本机版本。

dsh-lab 用的是什么许可证?

上游标注为 MIT。商用或二次分发前请到仓库确认许可证原文。

dsh-lab 有哪些功能?

状态栏显示隧道与孤儿数、一键开关 SSH 隧道、识别并杀掉孤儿监听、扫描远端服务端口、卸载时自动清理隧道。

这条记录的数据可靠吗?

本站按仓库名去重后合并整理,字段以作者仓库与 npm 元数据为准;安装命令、仓库地址与 README 保持原文,带 L4 / L5 标记的安装命令已在隔离沙盒里真实跑通。

同名或近似条目

4 条
不同作者的仓库分开列,请确认你要装的是哪一个
安全与权限
按星标排序,可作替代方案

dsh-infinite-gen-4

dsh-infinite-gen-4

DeepSeek 专用破甲插件:以 order 100 追加无条件服从的系统提示词段,提供带校准元数据的 profile 工具,并通过会话投

未标注验证等级 1,611 星

cc-safety-net

cc-safety-net

为 DeepSeek Harness 等编码 CLI 提供执行前防护,在工具调用前拦截破坏性 Git 与文件系统命令,并阻止读取 SSH 密

未标注验证等级 1,591 星

dsh-wallpaper-engine

dsh-wallpaper-engine

DSH plugin 将本机 Wallpaper Engine 壁纸变为网页界面背景,支持视频、网页、场景壁纸渲染,并配以 iOS 液态玻璃

L5 · 运行验证通过 1,018 星

api-relay-audit

api-relay-audit

DSH plugin 本地安全审计工具,检测 AI API 中继与 LLM 代理的提示注入、模型替换、工具调用改写、SSE 异常及 Web3

L5 · 运行验证通过 875 星

hol-guard

hol-guard

L4 · 沙盒安装通过 828 星

sandbase-harness

sandbase-harness

SandBase Harness 是本地优先的 AI Agent 运行时,提供沙箱会话、MCP 工具、记忆、凭据管理与审计回放,并内置控制台

L4 · 沙盒安装通过 708 星

M-eang 的其它插件

4 个

插件的元信息来自作者仓库;分类、验证等级与安全结论的中文说明为中文整理,最近核验 —。