MIT 许可的原生 dsh bundle:在 DSH 路由分发之前包装其 HTTP 服务器——未登录时 302 / 401 / 断开 WS 升级——并提供 TOTP、通行密钥、邀请码注册,以及按用户的会话、工作区与模型密钥隔离。
DSH 适配
原生运行时
作者声明
安全审计
未审计
最后核验
2026-11-10
许可证
MIT
01它能帮你完成什么?
给要暴露到内网或公网的 DeepSeek Harness Web UI 加一道用户名 / 密码登录门
登录页与会话 Cookie;未登录时页面请求 302 跳登录页、API 返回 401、WS 升级直接断开
把 DSH 面板暴露到 localhost 之外、需要在面板本身之前加一层认证的运维者
让同一套 DSH 部署上的多个使用者互相看不到对方的会话、工作区与模型 Key
会话与工作区按登录用户记录归属(访问他人对象返回 403)、模型 provider/Key 按用户隔离并用口令派生密钥信封加密、管理员分享的 Key 可选用但看不到明文
共用一台 DeepSeek Harness 的团队或家庭,需要按账号隔离而不是共用一个登录
02如何接入 DeepSeek Harness?
前置条件
- web profile 里的 DSH `>=0.2.0-rc.2 <0.3.0`——v0.7.0 移除了 legacy `0.1.1-rc.2` 传输线,缺少现代传输能力时插件 fail-closed
- Node.js `^22.19.0 || >=24.0.0`(与 DSH 一致)
- 要用通行密钥需支持 WebAuthn 的现代浏览器,并且访问地址是 `http://localhost:3080` 或域名 + HTTPS——IP 地址不能作为 RP ID
安装步骤
- 01
从 npm 安装:`dsh plugin --profile web add dsh-ui-auth`
$ dsh plugin --profile web add dsh-ui-auth
- 02
或固定到某个 GitHub 发行版本:`dsh plugin --profile web add github:0QwQ0/dsh-ui-auth#v0.7.0`
$ dsh plugin --profile web add github:0QwQ0/dsh-ui-auth#v0.7.0
- 03
或从本地目录安装:`dsh plugin --profile web add <本插件目录的绝对路径>`
$ dsh plugin --profile web add <本插件目录的绝对路径>
- 04
重启一次面板——bundle 层在启动时应用
验证接入成功
- 打开面板:会跳转到 `/auth/login`
- 用 `admin` 与随机密码登录;密码同时输出在面板控制台日志(以 `[dsh-ui-auth]` 开头)与面板进程工作目录下的 `dsh-ui-auth-bootstrap.txt`
回滚
- `dsh plugin --profile web remove dsh-ui-auth` 后重启面板;网关、设置面板与客户端模块全部消失,profile 的依赖与 bundle 名单自动还原
- 卸载不会删除账号数据;如需一并清空,按 README 的重置步骤操作
03DSH 适配与能力边界
原生 dsh profile bundle:包内声明了 `dsh.bundle.patch` 与 `dsh.client`,`dsh plugin` 会自动把它加入 profile 的 bundle 名单。它在 DSH 路由分发之前包装其 HTTP 服务器,拦截 `/api/*`、`/plugins/*`、HMR、SPA fallback 与 WebSocket 升级通道。
全接口拦截
任何到达 DSH 的 HTTP 请求或 WebSocket 升级→未登录时页面 302、API 401、WS 升级断开;登录后原请求原样透传
TOTP 两步验证与通行密钥
验证器 App(RFC 6238)或 WebAuthn 凭据→“密码 + 动态码”登录,或用通行密钥免密登录;一个账号可绑定多个通行密钥
私钥永不离开用户设备,服务器只保存公钥按用户隔离的模型密钥
每个用户在【设置】→【模型】里自己的 provider / 模型 / API Key→带掩码 Key 与余额的表格;私有 Key 用口令派生密钥加密,未解锁时服务端无法解密
查余额需先解锁管理员分享的配置可选用、可看余额但看不到 Key,撤销立即失效WebSocket mux 透明代理与逐帧过滤
已登录客户端发起的 `/api/remote.mux` 升级→透明代理:他人的 `baseline.items`、`upsert.workspace`、`order.workspaceIds` 与会话事件被丢弃或裁剪,自己的原样转发
`DSH_AUTH_MUX_PROXY=0` 可临时退避为直通用于排障,但会重现泄漏中英双语登录 / 注册界面
DSH 的语言设置或浏览器的 `Accept-Language`→中文 / English 的登录、注册与注册引导页,跟随 DSH 的 locale 服务即时切换
04适合谁?何时不该用?
适合
- 把 DSH 面板暴露到 localhost 之外、需要在面板本身之前加一层认证的运维者
- 共用一台 DeepSeek Harness 的团队或家庭,需要按账号隔离而不是共用一个登录
不适合
- v0.7.0 只支持 DSH 0.2.0 线。缺少现代传输能力时插件 fail-closed——认证网关不建立、面板不可访问——而不会退回旧传输线,也不会降级成无门放行。
- 浏览器不允许把 IP 地址当作通行密钥域:`http://127.0.0.1:3080` 与 `http://内网IP:3080` 都无法使用通行密钥。本机请用 `http://localhost:3080`,或给面板配域名并走 HTTPS。
- 隔离范围是 DSH 的会话/工作区数据按登录用户划分;它不改变 DSH 自身的进程权限模型,也不能隔离第三方插件自己的数据。多租户级别的强隔离需要 DSH 侧的支持。
05兼容性、维护与安全提示
- v0.7.0 只支持 DSH 0.2.0 线。缺少现代传输能力时插件 fail-closed——认证网关不建立、面板不可访问——而不会退回旧传输线,也不会降级成无门放行。
- 浏览器不允许把 IP 地址当作通行密钥域:`http://127.0.0.1:3080` 与 `http://内网IP:3080` 都无法使用通行密钥。本机请用 `http://localhost:3080`,或给面板配域名并走 HTTPS。
- 隔离范围是 DSH 的会话/工作区数据按登录用户划分;它不改变 DSH 自身的进程权限模型,也不能隔离第三方插件自己的数据。多租户级别的强隔离需要 DSH 侧的支持。
- 公网部署应放在 HTTPS 反向代理之后,由代理终结 TLS 并保留 Host,并在反代场景开启 `DSH_AUTH_TRUST_PROXY=1`,否则登录限流会按代理 IP 聚合。
- 首次启动会生成含管理员随机密码的 `dsh-ui-auth-bootstrap.txt`。README 要求用完即删,且任意用户改密成功后该引导文件会自动删除。
MIT · 持续维护(最新 release v0.7.1,2026-10-16)· legacy DSH 0.1.1-rc.2 支持已于 v0.7.0 结束
06常见问题
v0.7.x 支持哪些 DSH 版本?
web profile 里的 DSH `>=0.2.0-rc.2 <0.3.0`。legacy `0.1.1-rc.2` 传输线已在 v0.7.0 移除:缺少现代传输能力时插件 fail-closed——认证网关不建立、面板不可访问——而不是无门放行。
第一次怎么登录?
用户表为空时插件会自动创建 `admin` 并生成随机密码,同时输出在面板控制台日志(以 `[dsh-ui-auth]` 开头)与面板进程工作目录下的 `dsh-ui-auth-bootstrap.txt`。打开面板会跳转到 `/auth/login`,登录后请立刻在【设置】→【用户管理】改密码,引导文件也会随之删除。
为什么在内网 IP 上用不了通行密钥?
浏览器不允许把 IP 地址当作 WebAuthn 的 RP ID,明文 HTTP 也不是安全上下文。本机请用 `http://localhost:3080`,或给面板配域名并走 HTTPS。
普通用户能看到别人的会话吗?
不能。会话与工作区在创建时记录归属,列表与搜索接口按属主过滤,直连他人会话返回 403,`/api/remote.mux` 的 WebSocket 由插件透明代理并逐帧过滤。管理员可见全部数据。
它会改变 DSH 自身的权限模型吗?
不会。它按登录用户隔离 DSH 的会话/工作区数据,但不改变 DSH 的进程权限模型,也不能隔离第三方插件自己的数据。DSH 对 `/api` 的 DNS-rebinding 信任栅栏明确不是认证——本插件才是前置认证层。
07相关的 DSH 工作流
cc-safety-net
作者 kenryu42
面向 AI 编程智能体的执行前安全防护插件,在工具调用前拦截破坏性 Git、文件操作和敏感文件访问,兼容多种编码 Agent 与命令行工具。
dsh-uumit-remote
作者 uumit-ai
为 DeepSeek Harness 提供远程访问能力,支持从其他设备连接和使用会话。
deltabox-lite
作者 delta-box
为 AI 编程代理提供轻量沙箱,可查看文件差异、提交更改或中止操作。
tencentmeeting-cli
作者 tencentcloud
腾讯会议命令行工具(CLI),基于腾讯会议开放平台 OAuth2 授权,支持会议管理、录制管理、参会报告等功能。
08数据与来源
本包是标准的 DSH profile bundle(声明了 `dsh.bundle.patch` 与 `dsh.client`), `dsh plugin` 会自动把它加入 profile 的 bundle 名单:
在 DSH 路由分发之前包装其 HTTP 服务器,覆盖 `/api/*`、`/plugins/*`、HMR、 SPA fallback 与 WebSocket 升级通道,没有旁路。
页面基于项目公开文档、仓库元数据和 DSH Plugins 的结构化解析生成;最后核验于 2026-11-10。发现错误?提交更正。
最佳 DeepSeek Harness 插件
从全目录挑出的 12 个值得优先安装的插件,覆盖各个分类。
