返回目录

dsh-remote

编辑精选维护状态: 活跃

xgone/dsh-remote

让你通过浏览器安全地远程使用 DeepSeek Harness:登录、MFA 两步验证、角色权限和远程文件预览。 | Use DeepSeek Harness securely in a remote browser with login, MFA, roles, and remote file preview.

前往 GitHub
$ dsh plugin --profile web add @xgone/dsh-remote

59

星标

9

Fork

JavaScript

语言

MIT

许可证

2026-08-16

创建于

2026-09-29

最近推送

一个原生的 DeepSeek Harness 插件,在 `dsh web` 前加一道加固的认证门禁(账号密码 + TOTP MFA、签名会话 Cookie、基于角色的访问控制),让你能经反向代理把 Harness 安全地暴露给远程 / 局域网浏览器。

DSH 适配

原生运行时

作者声明

安全审计

未审计

最后核验

2026-09-01

许可证

MIT

01它能帮你完成什么?

  • 把 DeepSeek Harness 的 `dsh web` 实例安全地暴露给远程 / 局域网浏览器,前面加上账号 + MFA 认证

    登录门禁 + HMAC-SHA256 签名的 HttpOnly 会话 Cookie + 基于角色的访问控制;经反向代理后外部浏览器即可使用完整功能,且不在宿主机弹任何原生窗口

    自行托管 DeepSeek Harness、并需要经反向代理 / 隧道 / Tailscale / Frp 安全远程访问的运维者

  • 从远程浏览器选择 / 新建工作区、查看宿主机文件,而不依赖宿主机的原生对话框

    浏览器内的目录对话框(双栏目录视图 + 面包屑 + 新建文件夹),以及把宿主机文件流式推送到远程侧栏

    被 DSH 仅限 loopback 的原生目录选择器与宿主文件打开限制挡住的远程用户

  • 为 DeepSeek Harness 远程登录增加 TOTP 多因素认证(MFA)

    RFC 6238 TOTP 绑定(Google Authenticator / 1Password / Authy)、二维码 + 手动密钥 + otpauth 链接 + 10 个一次性备用码,并支持管理员恢复

    任何把 DeepSeek Harness 暴露到远程、并希望在密码门禁之上再加第二因素的人

02如何接入 DeepSeek Harness?

前置条件

  • 已安装 DeepSeek Harness 并可运行 `dsh web`(默认端口 3080);
  • 已初始化 `web` profile(首次运行 `dsh web` 会自动初始化);
  • 系统 PATH 中有 `pnpm`(`dsh plugin` 命令需要它来管理 profile 的插件)。

安装步骤

  1. 01

    安装插件:`dsh plugin --profile web add @xgone/dsh-remote`(会自动把自身追加到 `dsh.profile.bundles`)

    $ dsh plugin --profile web add @xgone/dsh-remote

  2. 02

    重启 `dsh web` —— Web 表面禁用 HMR,必须重启补丁才能生效

    $ dsh web

  3. 03

    打开 http://127.0.0.1:3080 创建首个管理员(仅限本机提交);无浏览器服务器可用 `bootstrap` 配置节预置管理员

验证接入成功

  • 未登录时访问任意路径 → 登录页;直接调用 `/api` → 403
  • 登录后 `curl http://127.0.0.1:3080/auth/me` 应返回 `{"authEnabled":true,"bootstrap":false,"authenticated":true,...}`

回滚

  • 卸载插件:`dsh plugin --profile web remove @xgone/dsh-remote`,再重启 `dsh web` 门禁即消失
  • 保留插件但关闭认证:在 `cordis.patch.yml` 设 `enabled: false` 后重启

03DSH 适配与能力边界

DSH 适配原生运行时

Native DeepSeek Harness plugin — installs via `dsh plugin --profile web add`, wraps DSH's webServer routes + WebSocket as an auth gate (Cordis bundle patch)

  • 账号密码 + MFA 登录门禁

    用户名 / 密码(第二步再加 TOTP 动态码)→HMAC-SHA256 签名的 HttpOnly 会话 Cookie;MFA 门禁后的 `/api` 与 WebSocket 访问

    未登录访问任何路径都得到自包含的登录页;`/api` 与 WebSocket 全部要求有效
  • 浏览器内目录对话框(替换原生选择器)

    工作区选择 / 新建操作→**浏览器内的目录对话框**(双栏目录视图 + 面包屑 + 新建文件夹)

    DSH 默认的原生目录选择器被禁用,改为 browse 后端
  • 远程文件侧栏(/auth/file)

    远程(非 loopback)浏览器在 DSH Web UI 中点击文件路径→宿主机文件流式推送到右侧面板(Markdown / 图片 / PDF / 视频内联,支持多面板)

    **右侧边栏面板**中显示(`/auth/file`
  • 基于角色的访问控制(admin / user / guest)

    client-request RPC 信封(方法级)→认证通过后、关闭 `adminOnly` 时生效的逐方法访问控制

    关闭 `adminOnly` 后启用三层方法级权限模型

04适合谁?何时不该用?

适合

  • 自行托管 DeepSeek Harness、并需要经反向代理 / 隧道 / Tailscale / Frp 安全远程访问的运维者
  • 被 DSH 仅限 loopback 的原生目录选择器与宿主文件打开限制挡住的远程用户
  • 任何把 DeepSeek Harness 暴露到远程、并希望在密码门禁之上再加第二因素的人

不适合

  • Web 表面禁用 HMR;任何配置修改后必须重启 `dsh web`(补丁热重载不可用)才能生效。
  • `dsh web` 拒绝 `--host 0.0.0.0`;公网暴露必须经由反向代理(TLS 终结 + WebSocket 转发),并开启 `trustProxy: true`(默认开)。
  • DSH 是单租户(一个进程级共享的 `$DSH_HOME`),插件无法隔离每用户的独立工作区/会话——事件流、搜索、任务等会全局泄漏。要隔离请每人一个 profile 实例;共享实例只能用角色体系约束。

05兼容性、维护与安全提示

  • Web 表面禁用 HMR;任何配置修改后必须重启 `dsh web`(补丁热重载不可用)才能生效。
  • `dsh web` 拒绝 `--host 0.0.0.0`;公网暴露必须经由反向代理(TLS 终结 + WebSocket 转发),并开启 `trustProxy: true`(默认开)。
  • DSH 是单租户(一个进程级共享的 `$DSH_HOME`),插件无法隔离每用户的独立工作区/会话——事件流、搜索、任务等会全局泄漏。要隔离请每人一个 profile 实例;共享实例只能用角色体系约束。
  • 远程文件侧栏默认只能显示 DSH 主目录与 dsh 进程工作目录内的文件;范围外路径提示 `outside-roots`,需管理员在「设置 → 允许的目录」中添加(即时生效)才可见。
2026-08-162026-08-30作者未说明

MIT · 最后推送 2026-08-30 · 无打标发布(latest_release: none);README 记录修复至 v0.2.6+

06常见问题

如何为 DeepSeek Harness 安装 dsh-remote?

运行 `dsh plugin --profile web add @xgone/dsh-remote`,然后重启 `dsh web`(Web 表面禁用 HMR,必须重启)。插件会自动把自身追加到 `dsh.profile.bundles`。打开 http://127.0.0.1:3080 创建首个管理员即可。

dsh-remote 是替换官方的 `dsh web`,还是与它共存?

它包装 DSH 自身的 `webServer` 路由与 WebSocket 升级握手,并不替换 `dsh web`。认证通过后把请求的 Host/Origin 归一化为 loopback,使 DSH 的信任围栏对外部浏览器放行特权方法(`host.pickDirectory`、`settings.*`、`credentials.*`)。

如何安全地把 DeepSeek Harness 暴露到公网?

`dsh web` 拒绝 `--host 0.0.0.0`,需放在反向代理(nginx / ssh 隧道 / Tailscale / Frp)后做 TLS 终结与 WebSocket 转发,并开启 `trustProxy: true`(默认开);HTTPS 部署建议把 `session.secure` 设为 `true`。

多个用户可以共用一个实例并隔离工作区吗?

不行。DSH 是单租户的(一个进程级共享的 `$DSH_HOME`),插件无法隔离每用户的独立工作区/会话——事件流、搜索、任务等会全局泄漏。要隔离请每人一个 profile 实例(`dsh --profile alice --port 3081`);共享实例则用 admin/user/guest 角色体系约束。

08数据与来源

  • 作者声明github.com0694a6350bb2…

    让 DeepSeek Harness 可以被安全地远程访问**:在 `dsh web` 前增加完整的账号密码认证 + MFA

  • 作者声明github.com0694a6350bb2…

    就是那个认证层,认证通过后自动放行。

页面基于项目公开文档、仓库元数据和 DSH Plugins 的结构化解析生成;最后核验于 2026-09-01。发现错误?提交更正。

🏆

最佳 DeepSeek Harness 插件

从全目录挑出的 12 个值得优先安装的插件,覆盖各个分类。

广告

DSH Plugins 是独立的 DeepSeek Harness 插件市场,与 DeepSeek 官方无关,也不代表官方背书。第三方插件未经安全审计,安装前请审查源码。

每周获取最新的 DeepSeek Harness 插件,绝不滥发。