在本地运行 DeepSeek Harness (DSH) Web 配置文件时,直接暴露服务端口往往缺乏精细的访问控制。对于单操作员场景,需要一个轻量级的“门”,既能管理密码、通行密钥和 IP 白名单,又能不干扰 DSH 原生的工作区和会话管理。
dsh-local-hanaccount 是一个为本地 DSH Web 配置文件设计的单操作员访问网关插件。由维护者 Z-6354 开发,它提供了一套统一的登录机制,将密码、通行密钥和 SSH 密钥整合在一个入口,并支持 IP 白名单、黑名单统计以及 Nginx 集成。
核心功能¶
统一登录与多因子支持
插件提供统一的登录页面。支持密码登录(使用 scrypt 哈希,5 次失败锁定)和通行密钥登录(WebAuthn,需 HTTPS 或 localhost)。此外还支持 SSH 公钥登录,适用于 CLI 或脚本场景。
全路由保护与失败关闭
默认保护所有插件 webServer 前缀。配置的 excludePrefixes 无法豁免需要认证的业务路由,只允许内置资源和插件包在通过 IP 和入口检查后匿名访问。这意味着业务路由采用“失败关闭”策略。
会话与权限管理
支持登出撤销(关闭活跃套接字)。password-native-v1 桥接机制在建立网关会话的同时也建立官方主机会话,确保兼容性。会话包含密码版本绑定和服务器端绝对/空闲生命周期。
IP 与网络控制
支持 IP 白名单(信任 IP 可跳过登录日志)和黑名单(永久拒绝并记录统计)。支持 LAN 模式(禁用白名单,显式拒绝 + 强制认证)。
集成能力
提供 Nginx 反向代理配置片段(含 X-Real-IP 设置),便于在公网环境部署。
安装与启用¶
安装插件后需重启 DSH Web 配置文件才能生效。
dsh plugin --profile web add dsh-local-hanaccount
如果本地已有源码,也可以直接添加路径:
dsh plugin --profile web add /path/to/dsh-local-hanaccount
典型用法¶
- 安装并重启 DSH Web 配置文件后,直接在浏览器打开
localhost(不经过反向代理),在登录页设置初始密码。 - 进入 DSH 的设置界面,在“访问控制”中添加当前 IP 到白名单。
- 对于远程访问,必须使用 HTTPS 和受信任的反向代理。通行密钥功能仅在 HTTPS 或
http://127.0.0.1/localhost环境下可用。
适用场景与注意¶
适合需要本地运行 DSH Web 配置文件,并希望为单用户或小团队提供可控访问入口的场景。
- 权限与依赖:该插件以 DSH 进程的权限运行,安装前应检查源码与许可证。
- 会话管理:工作区和会话由 DSH 原生管理,插件不干预。
- 持久化限制:目录的 fsync 和电源故障持久化在 Windows 上未做保证。
- 通行密钥检测:通行密钥的可用性取决于当前 URL 的
isSecureContext,与域名无关。
通过 dsh-local-hanaccount,可以在不改变 DSH 核心架构的前提下,为本地 Web 服务增加一道可控的访问锁。它通过标准化的接口整合了多种认证方式,适合追求安全与简洁并重的开发者。项目源码与文档可在其 GitHub 仓库查阅。