为远程访问加上密码与动态口令验证
29.9/100
综合分
0
GitHub 星标
—
npm 周下载
—/5
用户评分
数据截至 2026/10/11 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add ChenLuoi/dsh-auth-remote该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)
状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:待复验
是什么
dsh 原生插件 · security
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 22 天前
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码v2.7.0🔵 扫描:含敏感能力尚无人工评估展开查看扫描说明与证据 ↓
安全扫描自动 · 静态分析源码
v2.7.0静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。
读写/删除本地文件
查看扫描证据(共 33 处,展示前 32 条)
- 读取本地文件src/cli/index.ts:16
const manifest = JSON.parse(readFileSync(new URL('../package.json', import.meta.url), 'utf8')) as { - 读取本地文件src/cli/ipc-client.ts:39
directory = await lstat(dirname(path)) - 读取本地文件src/cli/ipc-client.ts:52
socket = await lstat(path) - 读取本地文件src/cli/profile.ts:32
const dir = await realpath(cwd) - 读取本地文件src/cli/profile.ts:33
const home = await realpath(dshHome(env)) - 读取本地文件src/cli/profile.ts:34
const profiles = await realpath(join(home, 'profiles')) - 读取本地文件src/cli/profile.ts:36
const info = await lstat(dir) - 读取本地文件src/cli/profile.ts:48
manifest = await lstat(join(dir, 'package.json')) - 读取本地文件src/http/admin-socket.ts:78
const stale = await lstat(this.path, { bigint: true }) - 删除本地文件src/http/admin-socket.ts:85
await unlink(this.path) - 写入本地文件src/http/admin-socket.ts:99
await chmod(this.path, 0o600) - 读取本地文件src/http/admin-socket.ts:100
const info = await lstat(this.path, { bigint: true }) - 读取本地文件src/http/admin-socket.ts:195
const current = await lstat(this.path, { bigint: true }) - 删除本地文件src/http/admin-socket.ts:196
if (current.isSocket() && current.ino === this.inode) await unlink(this.path) - 读取本地文件src/http/routes.ts:163
return readFileSync(new URL(name, base), 'utf8') - 读取本地文件src/index.ts:34
readFileSync(createRequire(import.meta.url).resolve('dsh-auth-remote/package.json'), 'utf8'), - 读取本地文件src/storage/lock.ts:24
raw = await readFile(`/proc/${pid}/stat`, 'utf8') - 读取本地文件src/storage/lock.ts:40
readFile('/proc/sys/kernel/random/boot_id', 'utf8'), - 读取本地文件src/storage/lock.ts:78
const info = await lstat(path) - 写入本地文件src/storage/lock.ts:92
await mkdir(dir, { mode: 0o700 }) - 删除本地文件src/storage/lock.ts:135
await unlink(path).catch(() => undefined) - 写入本地文件src/storage/lock.ts:156
await mkdir(recovery, { mode: 0o700 }) - 读取本地文件src/storage/lock.ts:167
info = await lstat(path) - 读取本地文件src/storage/lock.ts:173
const old = parseOwner(await readFile(path, 'utf8')) - 读取本地文件src/storage/lock.ts:176
const latest = await lstat(path) - 删除本地文件src/storage/lock.ts:179
await unlink(path) - 删除本地文件src/storage/lock.ts:187
await rmdir(recovery) - 删除本地文件src/storage/lock.ts:196
await unlink(this.path) - 读取本地文件src/storage/store.ts:55
const info = await lstat(path) - 读取本地文件src/storage/store.ts:58
state = validateState(JSON.parse(await readFile(path, 'utf8'))) - 写入本地文件src/storage/store.ts:127
await rename(temp, this.path) - 删除本地文件src/storage/store.ts:153
if (!renamed) await unlink(temp).catch(() => undefined)
扫描于 2026/10/31(1 天前) · 范围 全包扫描(包内未声明入口) · 来源 GitHub 仓库
静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。
依赖的 DSH / Cordis 模块
@deepseek-ai/cordis@deepseek-ai/dsh-client-connection@deepseek-ai/dsh-client-locale@deepseek-ai/dsh-client-ui-settings@deepseek-ai/dsh-client-ui-slots@deepseek-ai/dsh-host-webserver@deepseek-ai/dsh-scope@deepseek-ai/schemastery给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
功能亮点
- 密码验证
- TOTP动态口令
- 可撤销会话
DeepSeek Harness 的单用户远程认证:密码、TOTP 和可撤销会话
README
由 DeepSeek 最新模型翻译生成dsh-auth-remote
DeepSeek Harness(DSH)的单用户远程登录插件,提供密码、TOTP、一次性备用码和可撤销会话。插件运行在 DSH 进程内,保护浏览器页面、API、流式响应和 WebSocket。
前置条件
- Linux(含 /proc)、Node.js 24 或更高版本,以及 DSH 0.1.7-rc.1、0.1.7-rc.2、0.2.0-rc.1、0.2.0-rc.2、0.2.1-alpha.1 或 0.2.1-alpha.2(默认)。仅从源码构建时需要 pnpm 12.5.1。
- DSH 默认的 ~/.dsh 数据目录和 web profile。账号状态属于该 profile,不与其他 profile 共用。
- 源码浏览器测试先执行 pnpm exec playwright install chromium。测试使用 Playwright 管理的浏览器和专用自签 TLS 夹具。
DSH 兼容性
dsh.compatibility.dshReleases 声明上述六个版本,开发默认使用 0.2.1-alpha.2。宿主 peer 声明和运行时版本检查统一使用 >=0.1.7-rc.1,不设上限且包含预发布版本。
展开完整文档(README 剩余 1 节)
dsh-auth-remote DeepSeek Harness(DSH)的单用户远程登录插件,提供密码、TOTP、一次性备用码和可撤销会话。插件运行在 DSH 进程内,保护浏览器页面、API、流式响应和 WebSocket。 前置条件 - Linux(含 /proc)、Node.js 24 或更高版本,以及 DSH 0.1.7-rc.1、0.1.7-rc.2、0.2.0-rc.1、0.2.0-rc.2、0.2.1-alpha.1 或 0.2.1-alpha.2(默认)。仅从源码构建时需要 pnpm 12.5.1。 - DSH 默认的 ~/.dsh 数据目录和 web profile。账号状态属于该 profile,不与其他 profile 共用。 - 源码浏览器测试先执行 pnpm exec playwright install chromium。测试使用 Playwright 管理的浏览器和专用自签 TLS 夹具。 DSH 兼容性 dsh.compatibility.dshReleases 声明上述六个版本,开发默认使用 0.2.1-alpha.2。宿主 peer 声明和运行时版本检查统一使用 >=0.1.7-rc.1,不设上限且包含预发布版本。 | DSH 版本 | 具体 IPv4 HTTP | 原生公开 URL CLI、Web 提示与 DSH_WEB_URL | 原生 IPv6 / HTTPS | | 0.1.7-rc.1/rc.2、0.2.0-rc.1/rc.2 | 支持 | 无 --public-url;原生模型侧 URL 保持 http://127.0.0.1:<实际端口> | 不支持 | | 0.2.1-alpha.1 | 支持 | 支持;使用插件最终公开根地址 | 不支持 | | 0.2.1-alpha.2 | 支持 | 支持;使用插件最终公开根地址 | 通过官方监听支持 | 后续版本属于向前准入,并不宣称已经逐版测试。插件仍检查必需的 WebServer/Connection 接口、宿主包实例一致性和原生认证交换。缺少能力时认证入口保持不可用并给出诊断。CI 在六个声明版本上运行 CLI、安装冒烟和浏览器回归。 六版均使用插件的单入口配置。原生 IPv6/TLS 需要 alpha.2;旧版 HTTP 监听可由外部 HTTPS 代理提供入口。源码构建参见开发指南。 从 npm 安装 安装 DSH 后,核对版本并把已发布的插件安装到默认 web profile: dsh --version dsh plugin --profile web add dsh-auth-remote@0.1.7 dsh plugin --profile web list 确认 dsh --version 输出 0.2.1-alpha.2(或上文其他兼容版本),且插件列表中有 dsh-auth-remote@0.1.7。这些命令使用 DSH 默认数据目录。源码构建及隔离开发运行时参见开发指南。 配置 web profile 最小安装无需修改 profile 补丁。用 dsh web --no-open --port 13090 启动,使用终端打印的 http://127.0.0.1:13090/ 根地址。未显式设置 publicUrl 时,插件根据监听的实际协议、地址和绑定端口生成唯一根地址,包含 --port 0 的实际结果。未登录导航跳转登录页;使用服务前检查 /auth-remote/ready。启动输出包含监听地址和一个不同的公开根地址,不含原生 ?token= URL。 公网 HTTPS 入口请使用部署指南和 profile 示例,设置顶层 publicUrl: https://dsh.example.com/、host、port。alpha.2 还支持具体 IPv6 和成对的顶层 tlsCert/tlsKey。URL 必须是 HTTP(S) 根地址,不能带凭据、子路径、查询或片段。准入范围是唯一公开来源加字面回环。配置 URL 不会配置代理路由或 TLS。 插件自动将定稿的原生桥接 authority 登记到 Connection 的 trustedHosts,下游插件无需额外 --trusted-host 即可识别具体监听地址。下游路由若需要原始公网 Host,可把路径加入 preserveOriginPaths,此时也自动登记最终公开 authority。显式 CLI trusted hosts 继续保留,外层公开来源与登录校验仍然生效。CLI 的 host/port 和公开 URL 覆盖文件值;TLS 按完整一对覆盖。升级 allowedOrigins 前阅读迁移和路径规则:零项或单项在内存迁移并告警,多项及任意显式新旧字段共存报错。 初始化账号 在真实交互终端中,使用与服务相同的默认 web profile: dsh plugin --profile web exec dsh-auth-remote init --lang zh 输入一个用户名和 12–256 个 Unicode 字符的密码。密码不作为命令行参数传递,也不会回显。未初始化时登录页会提示该命令,但网页不能创建账号。默认 requireTotp: true,首次密码登录必须绑定身份验证器。显示十个备用码时立即妥善保存:每个只能用一次,之后不能重新查看列表。 登录与账号管理 最小化安装时访问本机回环地址;配置公网入口后访问 https://dsh.example.com/auth-remote/login。DSH 内的安全设置可以修改密码、绑定 TOTP、在策略允许时关闭 TOTP,以及撤销会话。密码或第二因素变更会撤销已有会话。会话默认固定有效 168 小时,服务重启后仍保留。 dsh plugin --profile web exec dsh-auth-remote status --json dsh plugin --profile web exec dsh-auth-remote reset-password --lang zh dsh plugin --profile web exec dsh-auth-remote reset-totp --lang zh dsh plugin --profile web exec dsh-auth-remote revoke-sessions --lang zh 修改命令需要交互确认。在线命令走私有 Unix socket;离线命令取得同一 profile 锁。如果管理请求已提交但响应丢失,先运行 status 再判断是否重试。status --json 的机器字段不随语言变化。 内嵌安全页跟随 DSH 语言设置。独立登录页默认英文,仅在 localStorage["dsh-auth-remote.locale"] 保存 en 或 zh,登录前不读取 DSH 设置。CLI 人类文案由 --lang en|zh 指定;未指定时取首个非空的 LC_ALL、LC_MESSAGES、LANG(中文变体为 zh,其他为英文)。 接入反向代理 参见反向代理指南以及 Nginx 或 Traefik 示例。保留浏览器原始 Host、Origin、WebSocket 升级和流式响应。TLS 可在代理终止;把其精确 HTTPS 根地址设置为 publicUrl。保持 DSH 监听私有,且不要缓存认证响应。 项目与维护 插件复用 DSH 的 WebServer、Connection、设置 slot、官方工作区浏览与预览。一个账号及其会话存储在 profile 的私有 JSON 文件中;无需独立身份服务。检查和边界参见开发与部署。变更记录见更新日志;参与项目可阅读贡献指南、发布指南及 MIT 协议。
预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
ChenLuoi/dsh-auth-remote
为远程访问加上密码与动态口令验证
相关插件 · 安全 / 权限
智能体逆向工程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