给本机 dsh 界面加上 TLS 登录门禁,安全暴露到外网
28.3/100
综合分
0
GitHub 星标
—
npm 周下载
—/5
用户评分
数据截至 2026/9/30 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add zergtant/dsh-remote-access该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)
状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:需留意
是什么
dsh 原生插件 · security
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
更新放缓:最近一次提交在 48 天前
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
⚠︎ 实装验证未通过(dependency_conflict · 2026/10/2) ——可能是验证环境差异,装前建议到 GitHub 仓库确认最近更新与 issue。
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码v2.7.0🔵 扫描:含敏感能力尚无人工评估展开查看扫描说明与证据 ↓
安全扫描自动 · 静态分析源码
v2.7.0静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。
读写/删除本地文件发起外部网络请求
查看扫描证据(共 18 处,展示前 18 条)
- 读取本地文件lib/index.js:173
if (existsSync(keyPath) && existsSync(certPath)) { - 读取本地文件lib/index.js:175
const cert = new X509Certificate(readFileSync(certPath, 'utf8')) - 读取本地文件lib/index.js:177
return { key: readFileSync(keyPath), cert: readFileSync(certPath) } - 写入本地文件lib/index.js:201
mkdirSync(dir, { recursive: true, mode: 0o700 }) - 写入本地文件lib/index.js:202
writeFileSync(keyPath, p.private, { mode: 0o600 }) - 写入本地文件lib/index.js:203
writeFileSync(certPath, p.cert, { mode: 0o600 }) - 发起网络请求lib/index.js:591
req = http.get(this.innerAuthUrl, { agent: false, timeout: 3000 }, (res) => { - 发起网络请求lib/index.js:628
const upstream = http.request(target, { method: req.method, headers, agent: false }, (up) => { - 写入本地文件src/build-host.mjs:11
mkdirSync(join(root, 'lib'), { recursive: true }) - 写入本地文件src/build-host.mjs:12
copyFileSync(join(here, 'index.js'), join(root, 'lib', 'index.js')) - 读取本地文件src/index.js:173
if (existsSync(keyPath) && existsSync(certPath)) { - 读取本地文件src/index.js:175
const cert = new X509Certificate(readFileSync(certPath, 'utf8')) - 读取本地文件src/index.js:177
return { key: readFileSync(keyPath), cert: readFileSync(certPath) } - 写入本地文件src/index.js:201
mkdirSync(dir, { recursive: true, mode: 0o700 }) - 写入本地文件src/index.js:202
writeFileSync(keyPath, p.private, { mode: 0o600 }) - 写入本地文件src/index.js:203
writeFileSync(certPath, p.cert, { mode: 0o600 }) - 发起网络请求src/index.js:591
req = http.get(this.innerAuthUrl, { agent: false, timeout: 3000 }, (res) => { - 发起网络请求src/index.js:628
const upstream = http.request(target, { method: req.method, headers, agent: false }, (up) => {
扫描于 2026/11/1(0 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库
静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。
依赖的 DSH / Cordis 模块
@deepseek-ai/schemastery@deepseek-ai/dsh-credentials给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
功能亮点
- TLS加密访问
- 登录认证
README
由 DeepSeek 最新模型翻译生成dsh-remote-access(dsh 远程访问)
update: dsh 0.1.5 没有改API这次更新只是修改了一些小问题,所以无需改动 API 适配。唯一修复的是自签证书有效期(见下「安全模型」)。
- dsh-0.1.3-alpha.2:验证流程与 API 对齐(登录门禁 + 凭据库 + 设置命名空间)。
- dsh-0.1.2-alpha.1:更新了验证流程和API,最新修改已经兼容。
- 原v1.0 对应dsh-v0.1.1
给 DeepSeek Harness (dsh) 的 web GUI 增加一个自包含的 TLS 远程入口:独立端口 + 自签证书 + 登录页 + 会话 cookie,之后透明代理到本机的 dsh web 服务器(默认 127.0.0.1:3080)。
展开完整文档(README 剩余 1 节)
dsh-remote-access(dsh 远程访问) update: dsh 0.1.5 没有改API这次更新只是修改了一些小问题,所以无需改动 API 适配。唯一修复的是自签证书有效期(见下「安全模型」)。 - dsh-0.1.3-alpha.2:验证流程与 API 对齐(登录门禁 + 凭据库 + 设置命名空间)。 - dsh-0.1.2-alpha.1:更新了验证流程和API,最新修改已经兼容。 - 原v1.0 对应dsh-v0.1.1 给 DeepSeek Harness (dsh) 的 web GUI 增加一个自包含的 TLS 远程入口:独立端口 + 自签证书 + 登录页 + 会话 cookie,之后透明代理到本机的 dsh web 服务器(默认 127.0.0.1:3080)。 把只在 127.0.0.1 上监听的 dsh GUI,安全地暴露给局域网 / frp 功能 - TLS edge:独立端口(默认 3081)监听,自签证书(首次自动生成、自动续期) - 登录门禁:用户名 + 密码,登录后下发会话 cookie(HttpOnly/SameSite=Lax/Secure),按 IP 限速防爆破 - 透明代理:HTTP 请求 + WebSocket 全部转发到回环 dsh,Host/Origin 改写为回环,dsh 的信任围栏照常把请求当作本地请求 - 设置面板:GUI「设置 → 远程访问」一级菜单:「启动/停止」按钮(即时生效)+ 实时状态行 + TLS / 端口 / 监听地址 / 账号 / 密码(保存后热生效,改端口即时迁移,无需重启 dsh) - 浏览器零改写:GUI 原样加载;edge 仅在转发的 index.html 注入一行标记,让 dsh 客户端识别"本页 /api 由可信 edge 服务" 安装 前提:已有一个运行中的 dsh web 部署(本插件是它的 profile 插件)。 统一用 dsh 官方命令 dsh plugin 安装(Linux / macOS / Windows 通吃,无需手改任何 JSON——它自动完成 pnpm 安装,并自动把声明了 dsh.bundle 的依赖登记进 profile 的 bundles 层)。前提是机器上有 dsh CLI 和 pnpm。 方式一:从 GitHub 远程安装(推荐) dsh plugin --profile web add github:zergtant/dsh-remote-access 方式二:本地目录安装 cd /path/to/dsh-remote-access dsh plugin --profile web add . 方式三:npm 安装 暂不支持升级 / 卸载 dsh plugin --profile web update dsh-remote-access # 升级(git 源重新拉取) dsh plugin --profile web remove dsh-remote-access # 卸载(bundles 登记自动移除) 安装完都必须重启 dsh 生效。插件默认 enabled: false,不会自动监听任何端口,需在 GUI 里显式开启。 安装时 pnpm 会报一条 peer 提示,这是预期的: Issues with peer dependencies found ... missing peer @deepseek-ai/dsh-credentials。 凭据 seam 由 dsh 安装闭包在 $DSH_HOME/profiles/node_modules 提供,不由 profile 自己安装,所以 pnpm 看不见它。装完 pnpm peers check 会一直显示这条,插件实际运行正常。本插件把两个 dsh 依赖按 dsh 自己的约定分开声明:@deepseek-ai/dsh-credentials(宿主 seam,必须共用宿主实例)放 peerDependencies;@deepseek-ai/schemastery(运行时校验器,可以自带一份)放 dependencies。 使用 1. 重启 dsh 后,打开 GUI:设置 → 远程访问 2. 设置密码(必填,公网暴露时的唯一口令)、用户名(默认 admin) 3. 点页面顶部的「启动」按钮(即时生效,不用点保存)→ 立即在 0.0.0.0:3081 监听,按钮旁显示"运行中 · https://…" 4. 访问: - 本机:https://127.0.0.1:3081 - 局域网:https://:3081 - 公网:把 frp 隧道指向 127.0.0.1:3081 5. 浏览器首次访问会提示自签证书不受信任——点"高级 → 继续访问"即可(或用 curl -k 验证)。 如果不想看这个提示,可以取消 TLS 复选框改用明文 http(但dsh有个小bug,所以这个方式是为cf反代使用) 配置项(设置卡片) | 字段 | 默认 | 说明 | | 启动/停止 | — | 页面顶部操作区:点「启动」立即拉起、点「停止」立即停止(均无需保存);按钮旁实时显示 运行中 · https://host:port / 未启用 | | TLS(https) | 开 | 自签 https;关闭 = 明文 http(内网/调试用,省掉浏览器证书告警),保存后生效 | | 端口 | 3081 | 1–65535,保存后即时迁移监听 | | 监听地址 | 0.0.0.0 | 0.0.0.0(对外)/ 127.0.0.1(仅本机,例如只给 frp 用) | | 用户名 | admin | 登录用户名 | | 密码 | — | 存 dsh 凭据库(~/.dsh/.credentials.yaml,0600),设置里留空=保持不变 | 启动/停止永远用已保存的配置**;TLS/端口/监听地址/用户名/密码改完都处于"未保存草稿"状态,点「保存」才应用——运行中保存 = 立即热迁移,停止中保存 = 下次启动生效。有未保存更改时页面显示琥珀色横幅提示,避免误以为服务已按新配置运行。 安全模型 - 主服务零暴露:dsh 主 web 服务器仍只绑 127.0.0.1;对外只有本插件的 3081。 - 唯一门禁 = 登录口令:edge 之后的 /api(含特权设置面)都由登录 cookie 保护。公网暴露时务必使用强密码。 - 证书:自签(localhost/127.0.0.1 SAN,10 年有效期, 证书有效期说明:selfsigned 5.x 是重写版本(基于 @peculiar/x509),移除了 v4 的 days 选项,有效期只能通过 notBeforeDate/notAfterDate 指定,不传时默认 365 天。本插件按绝对时间传 notAfterDate 拿到 10 年有效期(该字段在 v4 上同样有效)。如果不修,证书会静默变成 1 年一续——只要 dsh 连续运行超过一年、或恰好在到期 30 天窗口外重启,浏览器就会直接拒绝连接。 公网部署建议:配合 frp 的 tls_enable、SSH 跳板、或在更外层(frp/nginx/Caddy)再套一层可信证书与 IP 白名单。本插件只负责"TLS + 登录",不替代网络层防护。 开发 改浏览器端后重新打包 npm install # 装 esbuild(devDependency) npm run build:client # src/client.tsx → lib/client.js 宿主端是纯 JS,改完直接同步 npm run build:host # src/index.js → lib/index.js 或一次全构建 npm run build lib/ 已随仓库提交(可直接安装);src/ 是源。 卸载 dsh plugin --profile web remove dsh-remote-access # 移除依赖 + bundles 登记,并 pnpm install 然后重启 dsh;可选删除残留:~/.dsh/dsh-remote-access/(自签证书)与凭据库里的 DSH_REMOTE_ACCESS_PASSWORD(~/.dsh/.credentials.yaml)。 已知限制 - 自签证书会触发浏览器告警(见上"安全模型")。 - 会话为内存态,dsh 重启后需重新登录。 - 单进程单 edge:一个 dsh 实例对应一个 3081;多实例需改端口。 License MIT
预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
zergtant/dsh-remote-access
给本机 dsh 界面加上 TLS 登录门禁,安全暴露到外网
相关插件 · 安全 / 权限
智能体逆向工程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