HomoLand/dsh-remote-access-patch

HomoLand★ 0ShellLast synced: 2026-08-15

Open on GitHub

README excerpt

dsh-remote-access-patch 让 dsh(DeepSeek Harness)的「配置平面」从 仅限本机 loopback 放行为 可在受信域名下远程读写 的一键脚本。 一个可开源的、幂等、可回滚的补丁工具,把 docs/cluster/dsh-external-access-deployment.md 第 6 节的两处手工补丁自动化。 仓库:https://github.com/HomoLand/dsh-remote-access-patch 它解决什么问题 dsh 0.1.0-rc.6 把配置平面限制在本机,有 后端 + 前端 两层栅栏,即使配了 --trusted-host 域名,远程浏览器仍: - 后端:15 个「特权方法」( settings. 、 agentPreset. 、 credentials. 、 host.pickDirectory 、 llm.discoverModels 等)被 isTrustedApiRequest(request, []) 空信任列表拒绝 → /api/settings.describe 返回 403 ; - 前端: connection.isLoopback 因 location.hostname 非回环而为 false ,settings scope 落到 "memory" ( status="unavailable" )→ 插件配置卡片不渲染 。 本脚本放行这两处,让远程登录用户可以正常读写设置与插件配置。 ⚠️ 安全前提(必须先读) dsh 源码注释明说: trustedHosts 是 DNS-rebinding 栅栏,不是认证层 ;配置平面在「真正的认证层」出现之前保持 loopback-only。 因此 只有 在 dsh 之前已前置了真正的认证层(如 Authelia forwardAuth + two factor/TOTP,或等效的 SSO/OIDC 网关)时,本补丁才是安全的: - 所有远程请求必须先通过登录 + 二次验证才能到达 dsh; - dsh 进程仍应只绑 127.0.0.1 ,经收口(如 socat)暴露给内网,不直接暴露公网。 没有认证层就不要用本脚本把 dsh 暴露到公网。 前置条件 - Linux, bash 4+, python3 (用于精确替换), grep ; - npm root -g 可解析(或手动传 --dsh-root ); - 修改 dsh 安装目录需要 root (文件属 root)。 用法 命令 作用 status (默认) 只读查看两处补丁状态与备份情况 apply 应用两处补丁(幂等;首次自动备份 .orig-bak ) rollback 从 .orig-bak 恢复原始文件 选项 说明 --dsh-root DIR dsh 模块根目录(…

View full README on GitHub →
Tools / Devdsh-pluginagent

Category