CloudSSH 开源项目:借助 Cloudflare Workers 打造免费 Web SSH 终端,用浏览器丝滑远程服务器,连接信息云端同步,一键部署还不花一分钱

一个基于 Cloudflare Workers 的开源 Web SSH 终端——打开浏览器,连上服务器,开干。

连接页面
终端页面


起因

不知道你有没有过这种经历:

出差在外,手机收到服务器告警,手边没有电脑,或者电脑上没装 SSH 客户端。你急得四处借电脑、装工具、配密钥……等连上去的时候,黄花菜都凉了。

又或者,你只是想快速看一眼服务器状态,却要经历:打开终端 → 输入命令 → 等连接 → 操作完关掉。流程不长,但每天都来一遍,就很烦。

所以我做了 CloudSSH——一个运行在 Cloudflare Workers 上的 Web SSH 终端。不装软件,不买服务器,打开浏览器就能连。

它到底是什么?

一句话:把 SSH 客户端搬进了浏览器

你的服务器凭据存在浏览器本地(AES-256-GCM 加密)或者云端(需要授权Github登录),SSH 连接通过 Cloudflare 的全球边缘网络中转。整个过程不需要你部署任何后端服务器——Cloudflare Workers 就是你的后端。

浏览器 ←→ Cloudflare Edge ←→ 你的服务器
         (WebSocket)        (TCP Socket)

架构简单得令人发指。但该有的一个不少。

凭什么值得用?

成本:零

纯 Serverless 架构。Cloudflare Workers 的免费计划对个人使用完全够用。没有 EC2,没有 VPS,没有月费账单。

部署:一分钟

git clone https://github.com/newbietan/CloudSSH.git
cd CloudSSH
npm install
npx wrangler login
npm run deploy

四条命令,完事。Wrangler 会给你一个 URL,点开就能用。

当然,如果你连命令行都懒得碰,也可以直接在 Cloudflare Dashboard 里绑定 GitHub 仓库,连代码都不用 clone,一键部署。

安全:不是闹着玩的

很多人对 “Web SSH” 的第一反应是:这安全吗?

放心,不是拿你密码裸奔的玩具:

  • 完整的 SSH-2.0 协议:ECDH 密钥交换、Ed25519 签名认证、AES-256-GCM 加密,一个不落
  • 防中间人攻击:首次连接会展示服务器 Host Key 指纹(TOFU 模式),让你确认是不是你认识的那台机器
  • SSRF 防护:内置 IPv6 和保留地址过滤,防止被拿去扫内网
  • 速率限制:API 请求频率限制,暴力破解?不存在的
  • 人机验证:支持 Cloudflare Turnstile 验证,防止恶意机器人滥用。

颜值:赛博朋克风

说实话,很多 Web 终端工具长得像 2005 年的产物。CloudSSH 不一样——默认就是赛博朋克主题,还内置了 Glacier、Gruvbox 等经典配色。

终端基于 xterm.js + WebGL 渲染,就算 cat 一个几万行的日志文件也不会卡。

文件传输:原生支持

集成 zmodem.js,在终端里直接用 rz(上传)和 sz(下载)命令,浏览器会自动弹出文件选择框或开始下载。不需要额外装任何东西。

技术上怎么实现的?

核心思路是利用 Cloudflare Workers 的 TCP Sockets 能力(@cloudflare/sockets),在边缘节点直接和目标服务器建立 TCP 连接,然后用纯 TypeScript 实现 SSH 协议的握手、认证和数据传输。

每个终端会话由一个 Durable Object 管理,借助 Hibernation API 保持会话持久化——即使你暂时切走再回来,连接还在。

前端是标准的 React + TypeScript + Vite + Tailwind CSS 技术栈,终端渲染交给 xterm.js。整个项目结构很清晰:

src/          → Worker 后端(SSH 协议实现)
frontend/     → React 前端(终端 UI)

架构总览

浏览器客户端 (React + xterm.js)
        │
        ▼ [WebSocket: 前端UI输入与终端输出]
Cloudflare Edge Network
        │
        ▼ [WebSocket: 路由与长连接]
Durable Object (SSH 会话管理)
        │
        ▼ [TCP Socket: @cloudflare/sockets]
目标 SSH 服务器 (如 Linux VPS)
  1. 用户在前端输入主机 IP、账号和密码
  2. 前端与后端的 Durable Object 建立 WebSocket 连接
  3. DO 使用 @cloudflare/sockets 与目标 SSH 服务器建立 TCP 连接
  4. DO 纯代码实现 SSH 协议协商,将加密后的终端数据通过 WebSocket 转发给前端

谁适合用?

  • 个人开发者:管理自己的几台 VPS,不想每次都开终端
  • 运维同学:应急场景下快速接入服务器
  • 团队协作:部署一套,团队共享(注意做好权限隔离)
  • 想折腾的人:Cloudflare Workers + SSH 协议实现,本身就是一个很好的学习项目

最后

CloudSSH 不是要替代专业 SSH 客户端,而是提供一个随时随地、零门槛的备选方案。

如果你觉得有用,去 GitHub 给个 Star 吧,这对开源作者来说是最大的鼓励:

https://github.com/newbietan/CloudSSH

有问题提 Issue,想改提 PR,欢迎一切形式的参与。

在线体验版本:https://ssh.newbietan.cn


打开浏览器,连上服务器。就这么简单。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值