Loading... 在 Cloudflare Workers 上跑一个 WebSSH 并不新鲜——难的是把它做成一个真正能用、敢用的「SSH 工作台」。EdgeSSH 就是朝着这个方向做的:它把 SSH 客户端搬到了 Cloudflare 边缘,本地一台设备都不需要装软件。 本文是拜读原帖后的学习笔记与实测补充,重点梳理它的设计取向、安全模型和我自己关心的几个实现细节,完整部署步骤建议直接看原帖和官方文档。 ## 它到底解决了什么问题 传统的 WebSSH 方案,通常是「浏览器 → 中间服务器 → SSH 目标机」,中间那台服务器才是真正的连接发起方。EdgeSSH 把这一层换成了 Cloudflare Worker: - **本地零依赖**:换电脑、换手机都能直接用,不用装 SSH 客户端,密钥跟随账号同步。 - **天然绕开 IPv6 困境**:真正发起 TCP 连接的是 Cloudflare 的边缘节点,不是你家里的宽带。国内大量家庭宽带没有 IPv6,而不少 VPS 只给了 IPv6 地址——这条路它直接给你打通了。 - **一个地球搞定位置感**:主界面是一颗 Canvas 渲染的 3D 地球,VPS 图标按物理位置钉在地球上,点一下就连过去。多地域机器一多,这种空间化的呈现比拉一个长列表直观得多。  ## 功能盘一遍 项目基于 cmliu/CF-Workers-WebSSH 开发,上游把「Workers 里建立 SSH 连接」这个硬骨头啃下来了,EdgeSSH 在此基础上补齐了管理层面的东西: | 能力 | 说明 | | --- | --- | | 主机列表与分组 | 多机管理的基础盘 | | 浏览器 SSH Terminal | 核心终端体验 | | SFTP 文件管理 | 网页里直接传文件 | | 实时系统信息 | CPU / 内存 / Load / 进程 | | 发行版与架构识别 | 自动探测,省去手工标注 | | 地理位置展示 | Canvas 3D 地球 | | 认证方式 | 密码 / SSH 私钥 | | 终端编码 | UTF-8 / GB18030 / Big5 | | 身份认证 | Cloudflare Zero Trust Access | | 数据存储 | D1 保存主机信息 | | 敏感数据加密 | AES-256-GCM 加密密码、私钥、地址 |  终端编码支持 GB18030 和 Big5 这点值得单独提一句。国内不少老设备、部分国产系统的默认编码不是 UTF-8,纯 UTF-8 的 Web 终端连上去就是一堆乱码,只能另开客户端。这个小细节说明作者是真的在用。 ## 安全设计:这部分是我最看重的 SSH 管理工具一旦设计不慎,就是把所有服务器的钥匙交出去。作者在这一块的说法比较克制,几条规则我觉得都踩在点上: 1. **不允许匿名调用主机管理 API** — 没有「默认开放」这种危险的便利。 2. **主机数据按 Cloudflare Access 身份隔离** — 不同登录身份看到的是各自的主机,不是共享一张表。 3. **SSH 密码和私钥不明文落 D1** — 用 AES-256-GCM 加密后再存。 第 3 点尤其关键。D1 是托管数据库,把私钥明文塞进去,等于安全边界完全交给数据库侧的访问控制。加密之后再存,至少多了一层:拿到数据库内容也解不开。 另外**部署完必须配置 Cloudflare Zero Trust Access 才能用**——没配就是打不开的状态。这个「默认关闭」的设计比「默认开放、请自行加固」要安全得多,代价是初次部署多一步。 ## 部署方式 沿用作者一贯的 GitHub Action 部署,和同作者的 EdgeChat 是同一套路子。仓库自带 `Deploy` workflow,推送到 `main` 后自动检查、迁移 D1、部署,也可以在 Actions 页面手动触发。 首次使用前,需要在仓库的 `Settings > Secrets and variables > Actions` 里配两项: | 名称 | GitHub 类型 | 用途 | | --- | --- | --- | | `CLOUDFLARE_ACCOUNT_ID` | Variable | Cloudflare 账户 ID | | `CLOUDFLARE_API_TOKEN` | Secret | 具备 Workers 部署与 D1 迁移权限的 Token |  跑完流程后,还要按文档配置 Access 才能实际使用,细节见仓库的 `docs/ZERO_TRUST.md`。 ## 实际操作中的几个提醒 **其一,旧版代码的 Action 部署有已知 bug。** 原帖作者明确说明:旧版代码的 Action 部署可能导致无法保存主机,需要**同步 fork 到最新提交**,且新版本会修复。准备上车的话,别用旧 fork。 **其二,Cloudflare Zero Trust 目前开通需要绑卡。** 这是跟帖里被问到的问题,也是实际门槛——Access 是这个项目安全模型的前提,绕不开。如果不想绑卡,就得接受「这个方案暂时用不了」,而不是退而求其次裸奔部署。 **其三,WebSSH 与专用客户端仍有差距。** 跟帖里有朋友表示还是会继续用 Termius,这个取舍是合理的。浏览器里的终端在快捷键、多标签、脚本化、批量并发这些场景上,短期内比不过成熟的本地客户端。EdgeSSH 的价值在于**免安装、跨设备、随时可用**,适合临时排障、手机上看一眼、或者在受限设备上应急,而不是替代主力 SSH 工具。 **其四,界面还有优化空间。** 作者自己也提到「目前可能还是偏繁琐一点」,后续会更新手机界面并优化体验。这是个相当新的项目(2026 年 9 月中旬才建仓),迭代会比较快。 ## 小结 EdgeSSH 的定位很清楚:不做功能最全的 SSH 客户端,而是把「随时随地能连上服务器」这件事做到位。Cloudflare Workers 提供边缘连接能力,D1 存主机信息,Access 管身份,AES-256-GCM 保护凭据——每一层都用了 Cloudflare 现成的能力,组合出来的东西却比想象中顺手。 它特别适合这几类人:机器分散在多个地域、经常需要在非主力设备上操作服务器、或者被 IPv6-only 的 VPS 卡过。Apache-2.0 许可,可以放心自部署和改造。 项目还处于早期,功能与文档都在快速补充中。作者在帖子里挺实在——承认部署有 bug、承认界面繁琐、承诺修复时间,这类透明度对开源项目来说是加分项。 --- **相关链接** - 原帖:https://www.nodeseek.com/post-936439-1 - 项目仓库:https://github.com/aozorae/EdgeSSH - 文档站:https://edgessh-docs.pages.dev/ - 上游项目:cmliu/CF-Workers-WebSSH - 同作者项目:EdgeChat > 版权说明:本文为基于公开资料的学习笔记与二次整理。EdgeSSH 项目以 Apache-2.0 许可开源,原文版权归原作者所有。文中引用内容仅用于介绍、评论与学习交流,已尽量保留来源链接。完整部署步骤与最新信息请以原帖及官方文档为准。如原作者认为引用不当,请联系删除或调整。 Last modification:September 23, 2026 © Allow specification reprint Like 如果觉得我的文章对你有用,请随意赞赏