前言¶
DeepSeek Harness (DSH) 的 Web 界面是管理智能体和配置系统的入口。对于直接暴露在公网或局域网中的 DSH 实例,增加访问控制是必要的。dsh-auth 插件为 DSH Web 提供了基于用户名和密码的认证网关,解决了直接访问端口可能带来的安全隐患。
插件简介¶
这是由维护者 optttt 发布的认证插件,遵循 MIT 许可证。它通过在 Web 端增加一层登录保护,确保只有授权用户才能访问 DSH 管理界面。
安装与启用¶
通过 DSH 的包管理器安装该插件。
dsh plugin --profile web add @tyler9061/dsh-auth
安装完成后需要重启 dsh web。
核心功能¶
该插件提供了以下主要功能:
- 登录认证:访问 Web 界面需要提供用户名和密码。
- 空闲自动登出:会话若长时间无操作,系统会自动登出。
- 会话过期:支持配置会话的最大存活时间。
- 单点登录:开启后,新登录会强制登出其他已存在的会话。
- UI 设置:在 Web 界面的设置 > Auth 中修改凭据和过期时间。
- 命令行操作:提供命令行工具重置密码和修改用户名。
- 登录历史:记录最近的成功登录信息(IP、时间、地理位置)。
典型用法¶
首次安装启动后,控制台会打印默认的用户名和密码(默认用户名为 admin)。访问 Web UI 时会自动跳转至 /login 页面。
重置密码:
- 打印新的随机密码:
dsh web p
- 设置指定密码:
dsh web p mypass
修改用户名:
用户名限制为 3-32 个字符,支持字母、数字、下划线和中划线。
dsh web u newname
在 Web 界面进入“设置 > Auth”菜单,可以手动修改用户名、密码、空闲登出时间、会话最大存活时间,以及管理单点登录状态和查看登录历史。
网络访问与反向代理¶
插件运行在反向代理模式,配置细节如下:
- 本地绑定:插件内部的真实服务仅绑定到
127.0.0.1。 - 代理端口:插件在
0.0.0.0:<lanPort>上运行反向代理,默认端口为3080。可以通过环境变量DSH_AUTH_PORT覆盖此端口。 - LAN 访问:由于反向代理的存在,所有
/apiRPC 接口(包括设置、文件、SCM 等)都可以通过 LAN 客户端访问。但是,认证网关仍然保护所有内容,未登录无法操作。 - WebSocket 支持:代理正确处理 WebSocket 升级,确保连接正常建立。
安全注意事项¶
- 生产环境:强烈建议在生产环境中使用 HTTPS。
- 密钥丢失:插件的加密密钥存储在
$DSH_HOME/auth.key,权限为 0600。如果该文件丢失,无法解密数据,必须使用dsh web p命令重置密码。 - 初始密码:首次登录后,应立即修改默认的
admin密码。
总结¶
dsh-auth 为 DSH Web 提供了标准的登录认证、会话管理和登录审计能力。通过命令行和 Web 界面双重操作方式,兼顾了便捷性与安全性。对于希望对 DSH Web 端口进行加固的用户,这是一个基础且必要的组件。