前言¶
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 端口進行加固的用戶,這是一個基礎且必要的組件。