편집자 노트

TecFancy/dsh-auth-gate

Login gate for the DeepSeek Harness (dsh) web surface: password or shared-token authentication, session cookies, rate limiting, and a user-management CLI.

이것은 DeepSeek Harness(DSH) 플러그인입니다. 이 사이트는 GitHub README, 설치 정보, 유지보수 상태, 공개 보안 시그널을 모아 보여줍니다.

dsh-auth-gate

English | 简体中文

DeepSeek Harness(dsh)网页版加一道登录门。部署到 公网 dsh 实例前面之后,不登录就没人能碰到你的 agent、聊天会话和 LLM 凭证。

它能做什么

  • 所有访问都要先登录。 每个页面、每个 API 调用、每条 WebSocket 连接都会检查; 没有有效会话的访客会被带到简单的登录页(API/脚本请求则返回 401)。

  • 两种登录方式(配置里二选一):

    • 密码(推荐):每个管理员一个用户名和密码。
    • 令牌:整个实例共用一个秘密令牌。
  • 浏览器和脚本都能用。 浏览器走登录页;脚本和 curl 直接带 Authorization: Bearer <token> 就能跳过登录页。

  • 默认就安全。 密码只存哈希、登录有限速(反复输错会临时锁定该地址)、会话 cookie 带安全属性,而且配置缺失或损坏时拒绝访问而不是悄悄开门

  • 一个管理用户的小命令行工具

    dsh-auth user add admin --password-stdin   # 添加用户
    dsh-auth user list                          # 查看用户
    dsh-auth user disable admin                 # 禁止某用户今后登录
    

快速开始

# 1. 从 npm 装进你的 dsh profile。
#    0.4.1 起包声明了 dsh.bundle manifest,`dsh plugin add` 会同时自动注册挂载
#    (dsh.profile.bundles),无需手动写挂载行:
dsh plugin --profile web add dsh-auth-gate

# 2. 创建管理员账号
printf '%s\n' '选一个强密码' | dsh-auth user add admin --password-stdin

# 3. 开启密码登录:在 $DSH_HOME/cordis.patch.yml 里覆盖插件配置
#    (仓库自带现成配置覆盖模板 deploy/cordis.patch.yml,见下方"配置"——挂载本身
#    不需要手动 patch 行)

# 4. 重启 dsh,打开你的站点——会先要求登录。

效果预览

未登录的访客会被带到登录页:

登录页

登录后进入你的实例:

dsh 实例

配置

bundle 挂载行(id dsh-auth-gate,由 dsh plugin add 自动插入)使用默认配置: mode: "token",由 DSH_AUTH_TOKEN 环境变量提供共享秘密。要改配置,在 $DSH_HOME/cordis.patch.yml(或 profile 的 cordis.patch.yml)里按 id 覆盖—— 仓库自带现成覆盖模板 deploy/cordis.patch.yml。注意:覆盖条目不要带 insert (否则会二次挂载插件),只覆盖 config:

- id: dsh-auth-gate
  config:
    mode: "password" # "password"(推荐)或 "token"
    cookieSecure: true # 使用 https 时保持 true
选项默认值作用
mode"token""password" = 用户名密码登录;"token" = 一个共享秘密
sessionTtl604800一次登录持续多久(秒),到期需重新登录
cookieNamedsh_auth会话 cookie 的名字(很少需要改)
tokenRef"DSH_AUTH_TOKEN"仅令牌模式:共享秘密存在哪个环境变量里
cookieSecuretrue只在纯 http 测试环境设为 false
usersFile""密码模式:用户列表文件位置。默认 $DSH_HOME/auth/users.yaml

部署

  • 反代部署指南 —— Caddy/nginx 配置、浏览器信任栅栏的坑 (反代后设置页 403,以及为什么只加认证修不了它)、推荐的半外壳拓扑。
  • docs/deployment_zh.md —— 运维清单、验收步骤(A–I)与故障诊断。

环境要求

  • 服务器上需要 Node ≥ 22.19 和 pnpm。
  • dsh 的 web profile 正常运行(dsh --profile web)。
  • 如果 cookieSecuretrue,站点必须走 https(浏览器在纯 http 下会拒绝安全 cookie)。

许可证

MIT

注意事项与局限

  • 禁用用户只阻止登录;已经登录的会话要等它自然过期。
  • 登录限速在服务器重启后清零。
  • 反代部署时,限速按反代出口地址统计。
  • dsh 界面里还没有登出按钮——访问 /auth/logout?next=/ 即可登出。
  • 本插件只保护 dsh 的网页入口,不能替代服务器层面的安全:请保持服务器系统用户最小权限、 配置文件私密(.credentials.yamlauth/users.yaml 创建时即为 0600 权限)。
REPOSITORY SIGNALS

보안 및 설치 증거

이 점수는 공개 저장소 메타데이터와 이 사이트에 등록된 설치 증거에만 기반하며, 코드 보안 감사와 다릅니다.

출처 추적 가능

공개 플러그인 카탈로그에서 왔으며, 공개 GitHub 저장소로 연결됩니다.

라이선스

저장소가 MIT 라이선스를 선언했습니다.

유지보수 활동

최근 180일 내 코드 업데이트가 있습니다.

설치 증거

재현 가능한 정확한 설치 메타데이터가 아직 등록되지 않았습니다. 저장소 설명에 따라 직접 확인하세요.

설치 라이프사이클 스크립트

prepare이(가) 감지되었습니다. 설치 전에 스크립트를 검토하세요.

주의 사항lifecycle-scripts