跳到主要内容

dsh-access-gate

已验证

@lemoncat7/dsh-access-gate · v0.1.0-alpha.6 · MIT · Web 界面

Non-invasive password gateway for DeepSeek Harness web deployments

安装

dsh plugin add @lemoncat7/dsh-access-gate

dsh --profile default --dump-config 确认 layer 已生效 —— 参见安装指南

源码

发布到 npm 但没有公开仓库。安装前请检查包内容。

标签

作者

说明文档

DSH Access Gate

@lemoncat7/dsh-access-gate 为 DeepSeek Harness 提供独立、非侵入式的密码访问网关。插件不会替换 DSH 的 WebServer,也不修改 Knowledge、SSH 或其他插件的路由。

工作方式

Browser / API client -> Access Gate :3081 -> DSH upstream :3080
  • 浏览器必须先登录,网关才会透明代理 HTTP 与 WebSocket。
  • /knowledge-api/v1 默认允许携带 Bearer Token 的机器客户端通过;Token 仍由 Knowledge 插件验证。
  • 密码使用 Node.js scrypt 生成不可逆校验值,并保存到 DSH Credentials。
  • 浏览器会话使用随机 256-bit Token,服务端只保留 SHA-256 摘要。
  • 卸载插件即可移除网关,不会改动 DSH 主程序。

安装与配置

安装包后,在 DSH 的「设置 → 插件 → 访问密码门禁」中配置:

  1. 从 DSH 启动日志复制一次性初始化令牌并设置至少 6 位密码;公开部署建议使用 12 位以上的随机密码。
  2. 设置公开 Origin,例如 https://dsh.example.com:1443
  3. 开启网关并设置监听地址、端口,保存后重启 DSH。
  4. 将 Nginx/1Panel 的 proxy_pass 改为门禁端口(默认 3081)。
  5. 限制原 DSH 端口(默认 3080)只能从可信主机访问。

公开部署必须开启 HTTPS Cookie。若反向代理与 DSH 不在同一网络命名空间,使用 0.0.0.0 并通过防火墙限制来源。

Knowledge 客户端

远程 Knowledge 客户端无需改变地址或 Token:

Authorization: Bearer dshk_...

网关只对配置的精确 API 前缀放行 Bearer 请求,不允许 /api/plugins/assets 等宽泛前缀。普通 DSH API 仍需要浏览器登录会话。

安全边界

此插件保护的是门禁端口。若原 DSH 端口仍暴露到公网,访问者可以绕过门禁。请同时使用 HTTPS、反向代理访问控制和主机防火墙。

开发

npm install
npm test
npm pack --dry-run