dsh-simple-auth:DeepSeek Harness 超輕量登錄網關

前言

DeepSeek Harness (DSH) 的 Web 界面在生產環境中需要額外的安全防護。現有的登錄門方案往往較爲複雜或依賴繁重。dsh-simple-auth 提供了一個直接的替代方案:通過共享密鑰或主/訪客密鑰進行訪問控制,並支持基於 ACL 的會話隔離與分享。

插件簡介

dsh-simple-auth 是由 lt9 維護的一個 DeepSeek Harness Web 插件。它是一個超輕量登錄網關,核心設計理念是零生產依賴。

該插件提供單登錄字段,支持可選的“主密鑰”或“訪客密鑰”。默認情況下,會話是隔離的;只有“所有者”可以分享或取消分享會話。側邊欄列表經過 ACL 過濾,右下角提供一個浮動操作按鈕 (FAB) 專門用於分享當前選中的會話。

安裝與啓用

使用 DSH 的插件管理器添加該插件:

dsh plugin --profile web add github:lt9/dsh-simple-auth

如果當前 profile 是 pnpm workspace,且添加時遇到 ERR_PNPM_ADDING_TO_ROOT 錯誤,請使用 -w 參數:

dsh plugin --profile web add -w github:lt9/dsh-simple-auth

本地檢出安裝:

dsh plugin --profile web add ./dsh-simple-auth

啓用前必須設置密鑰。插件採用“故障關閉”策略:如果密鑰缺失,登錄頁面會提示,且所有其他請求將被拒絕。

export DSH_SIMPLE_AUTH_KEY='a-long-random-secret'

在 systemd 或 Docker 服務中,請將同樣的變量放入 Environment 或 EnvironmentFile。如果需要複用已有的環境變量,可在配置中指定 keyEnv:

# $DSH_HOME/cordis.patch.yml
- id: dsh-simple-auth
  config:
    keyEnv: EXISTING_SECRET_ENV

重啓 DSH Web 進程後,打開 UI 並輸入密鑰即可。

配置項

以下爲已覈實的配置項。所有密鑰均爲可選,默認值由代碼提供。在 cordis.patch.yml 中配置時,home-layer patch 的 config 會完全替換默認配置,不支持深度合併。

配置項 默認值 說明
keyEnv DSH_SIMPLE_AUTH_KEY 存儲訪問密鑰的環境變量名
keyFile "" 如果設置,從該文件讀取密鑰(去除首尾空白),優先級高於 keyEnv
cookieName dsh_simple_auth Session Cookie 名稱
sessionTtl 604800 Cookie 有效期(秒),默認爲 7 天
cookieSecure auto auto 會跟隨 X-Forwarded-Proto;true 或 false 強制設置 Secure 標誌
rewriteLoopback true 將認證後的流量重寫爲 127.0.0.1:<port>,避免 DSH 的反向代理 Host 檢查阻斷特權 API
title DeepSeek Harness 登錄頁面的標題
remember true 顯示“記住密鑰在本設備”選項(僅存儲於 localStorage,服務端仍使用 Cookie)
rpcMinTimeoutMs 120000 注入到 Web Index 的 AbortSignal.timeout 下限。默認 DSH RPC 爲 30s,大頁面可能中斷,設爲 0 可禁用

安全與注意事項

  • 故障關閉:配置錯誤不會導致界面暴露。如果密鑰缺失或配置錯誤,所有請求將被拒絕。
  • 速率限制:針對每個客戶端 IP 進行登錄嘗試的速率限制。
  • 會話分享機制:分享會話意味着分享“實時智能體”,而非僅分享聊天文本。這意味着憑證、bash、工作區和設置仍然保持機器級別的共享。
  • 非 TLS 替代品:此插件僅做訪問控制,不能替代 TLS 或將智能體視爲遠程代碼執行來處理。請勿在公網明文暴露 DSH。
  • 目錄清單:Catalog 中的列出僅用於展示,不是安全審計。
羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜