为网页界面添加用户名密码登录,安全开放局域网访问
29.8/100
综合分
0
GitHub 星标
—
npm 周下载
—/5
用户评分
数据截至 2026/10/22 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add KagurazakaNyaa/dsh-web-login该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)
状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:仅索引
是什么
dsh 原生插件 · security
装得上吗
本站尚未做安装检查
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 11 天前
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码v2.7.0🔵 扫描:含敏感能力尚无人工评估展开查看扫描说明与证据 ↓
安全扫描自动 · 静态分析源码
v2.7.0静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。
读写/删除本地文件读取剪贴板或密钥环境变量
查看扫描证据(共 6 处,展示前 6 条)
- 读取密钥环境变量lib/login-core.js:167
const envPass = process.env.DSH_WEB_LOGIN_PASSWORD; - 读取本地文件lib/login-core.js:175
raw = await readFile(path, "utf8"); - 写入本地文件lib/login-core.js:208
await mkdir(dirname(path), { recursive: true }); - 写入本地文件lib/login-core.js:210
await writeFile(path, JSON.stringify(doc, null, 2), { mode: 0o600 }); - 写入本地文件lib/login-core.js:212
await chmod(path, 0o600); - 读取本地文件lib/login-core.js:220
const s = await stat(path);
扫描于 2026/10/31(1 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库
静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
给Deepseek Harness添加网页的密码访问,以便于公开到局域网访问
README
由 DeepSeek 最新模型翻译生成@kagurazakanyaa/dsh-web-login
简体中文版(与英文版内容一致)
给 DeepSeek Harness 网页界面添加用户名 / 密码登录,便于把实例公开到局域网访问。
这是什么
本插件只做准入控制(admission control):
* 不绑定端口 —— 局域网绑定请用 dsh-web-lan-access;
* 不接管 /api 的 Origin/Host 信任栅栏 —— 同样交给 lan-access;
* 不安装或管理 systemd —— 那属于部署环境配置,参考 systemd/ 手动完成。
行为:当浏览器没有带 ?token=… 时,把它重定向到登录页,让用户输入配置好的用户名/密码登录,然后签发给它一个与原生 token 登录完全相同的持久 cookie。
为什么能摆脱 token
DSH 每次启动的 launch token 只是一把一次性的钥匙,用来换取一个签名的 browser-session cookie。而 cookie 的签名密钥是持久化的,存放在 $DSH_HOME/.credentials.yaml 的 client-connection/browser-session 里,重启不变。
所以本插件直接用这个持久密钥签发同构 cookie —— 登录一次即可长期保持,不再依赖每次启动的 token。
展开完整文档(README 剩余 1 节)
@kagurazakanyaa/dsh-web-login
简体中文版(与英文版内容一致)
给 DeepSeek Harness 网页界面添加用户名 / 密码登录,便于把实例公开到局域网访问。
这是什么
本插件只做准入控制(admission control):
* 不绑定端口 —— 局域网绑定请用 dsh-web-lan-access;
* 不接管 /api 的 Origin/Host 信任栅栏 —— 同样交给 lan-access;
* 不安装或管理 systemd —— 那属于部署环境配置,参考 systemd/ 手动完成。
行为:当浏览器没有带 ?token=… 时,把它重定向到登录页,让用户输入配置好的用户名/密码登录,然后签发给它一个与原生 token 登录完全相同的持久 cookie。
为什么能摆脱 token
DSH 每次启动的 launch token 只是一把一次性的钥匙,用来换取一个签名的 browser-session cookie。而 cookie 的签名密钥是持久化的,存放在 $DSH_HOME/.credentials.yaml 的 client-connection/browser-session 里,重启不变。
所以本插件直接用这个持久密钥签发同构 cookie —— 登录一次即可长期保持,不再依赖每次启动的 token。
安装
dsh plugin --profile web add @kagurazakanyaa/dsh-web-login
也可以直接从 GitHub 源码装(不走 npm):
dsh plugin --profile web add github:KagurazakaNyaa/dsh-web-login
安装后重启 dsh。
配置凭据
方式 A:环境变量
export DSH_WEB_LOGIN_USER=admin
export DSH_WEB_LOGIN_PASSWORD='你的强密码'
方式 B:凭据文件(仅存 scrypt 哈希)
node scripts/set-login.mjs --user admin --password '你的强密码'
写入 $DSH_HOME/web-login.json,权限 0600
局域网暴露
配合 lan-access:
dsh plugin --profile web add dsh-web-lan-access
然后访问 http://<局域网IP>:3080/,看到登录页即表示工作正常。
systemd
cp systemd/dsh-web.service ~/.config/systemd/user/
编辑 Environment= 里的密码 loginctl enable-linger "$USER"
systemctl --user daemon-reload
systemctl --user enable --now dsh-web.service
配置项
- id: web-login
name: '@kagurazakanyaa/dsh-web-login'
config:
cookieMaxAgeDays: 30
loginPath: ''
enabled: true
反向代理(nginx)
DSH 的 /api 有一道信任栅栏:请求的 Host 必须与浏览器发出的 Origin 一致,否则一律 403。
登录成功但"所有接口都 403",几乎都是反代把 Host 改写成 localhost / 127.0.0.1 造成的 ——浏览器发的是 Origin: https://你的域名,而 DSH 收到的 Host 是 localhost,两者不匹配。
反代必须原样透传 Host:
location / {
proxy_pass http://localhost:3080/;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $connection_upgrade;
proxy_set_header Host $host; # 关键:不要写成 localhost proxy_set_header X-Forwarded-Proto $scheme; # 供 Secure Cookie 判断 proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_read_timeout 3600; }
同时启动 dsh 时要声明这个域名,让栅栏放行:
dsh web --port 3080 --trusted-host 你的域名
X-Forwarded-Proto: https 存在时,登录 Cookie 会自动带上 Secure 属性。
更省事的做法是配好 map $http_upgrade $connection_upgrade,WebSocket(/api/remote.mux)才能升级成功。
安全提醒
* 无 TLS,明文 HTTP 可被嗅探;仅用于可信网络,建议加防火墙或走 Tailscale / 反代。
* 有 150ms 固定延迟缓解暴力破解,但无账号锁定,请用强密码。
* 能登录 UI 等于能操作这台机器的 shell,请注意暴露范围。
License
AGPL-3.0-or-later预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
KagurazakaNyaa/dsh-web-login
为网页界面添加用户名密码登录,安全开放局域网访问
相关插件 · 安全 / 权限
智能体逆向工程morluto/rea
用智能体逆向工程任何东西,从应用行为到原生二进制。
★ 415,267已汉化DSH
73.3
智能体集群框架ruvnet/ruflo
面向 Claude Code 与 Codex 的智能体元基座meta-harness。
★ 80,414已汉化MCP
71.9
WorkBuddy 模型接入corrinehu/dsh-workbuddy-connect
2026 年 10 月 20 日起,WorkBuddy…
★ 1,604已汉化DSH
71.7
破甲一键通z91772524-ai/pojia-next
十五个 AI…
★ 967已汉化DSH
71.6
AI 代理虚拟终端strukto-ai/mirage
Mirage 是给 AI 智能体用的虚拟终端:一层 shell,统管数据、命令行和运行时。Unix…
★ 3,756已汉化DSH
70.8
Agent 操作层agentic-os-org/ANOLISA
ANOLISA(Agentic Nexus Operating Layer & Interface System Architecture)|智能体操作系统,带运行时、安全、可观测性,以及 Tokenless 响应压缩,降低 token 用量与成本。
★ 649已汉化DSH
70.7