当前位置: 首页 > news >正文

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

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



起因

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

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

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

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

它到底是什么?

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

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

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

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

凭什么值得用?

成本:零

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

部署:一分钟

gitclone https://github.com/newbietan/CloudSSH.gitcdCloudSSHpnpminstallcdfrontend&&pnpminstallnpx wrangler loginpnpmrun deploy

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

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

安全:不是闹着玩的

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

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

  • 完整的 SSH-2.0 协议:纯 TypeScript 自研协议栈,不依赖任何第三方 SSH 库。支持 Curve25519-SHA256(优先)和 ECDH-NISTP256 密钥交换,AES-256-GCM / AES-128-GCM / AES-256-CTR 数据加密,Ed25519 / ECDSA P-256 / RSA 主机密钥验证,一个不落
  • 防中间人攻击:首次连接会展示服务器 Host Key 的 SHA-256 指纹(TOFU 模式),让你确认是不是你认识的那台机器
  • SSRF 防护:内置 IPv6 和保留地址过滤,防止被拿去扫内网
  • 速率限制:API 请求频率限制,暴力破解?不存在的
  • 人机验证:支持 Cloudflare Turnstile 验证,防止恶意机器人滥用
  • 凭据零暴露:One-Time-Token 机制确保密码/私钥不经过前端,完全在 Worker 内部安全流转

颜值:赛博朋克风

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

全站颜色基于 CSS 变量系统,支持导入自定义 JSON 主题文件。登录用户的主题配置会自动云端同步,跨浏览器生效。不想手写 JSON?项目还配套了一个可视化在线主题编辑器,拖拖滑块就能调出你想要的配色。

终端基于 xterm.js + WebGL 硬件加速渲染,就算cat一个几万行的日志文件也不会卡。支持移动端适配。

文件传输:两种方式,随便挑

方式一:命令行传输(trzsz)

集成 trzsz.js,在终端里直接用trz(上传)和tsz(下载)命令,浏览器会自动弹出文件选择框或开始下载。支持拖拽文件到终端窗口直接上传、目录传输及断点续传。兼容 tmux 会话。(需远程服务器安装 trzsz)

方式二:图形化 SFTP 文件管理器

内置完整的 SFTP v3 文件传输协议,提供图形化文件浏览器界面。支持目录浏览、文件上传/下载、新建文件夹、文件重命名与删除等操作。基于 SSH 子系统实现,与终端会话并行运行,互不干扰。

GitHub 登录:云端保存你的服务器

支持 GitHub OAuth 登录。登录后,你可以在个人空间中保存常用的 SSH 服务器配置(凭据使用 AES-256-GCM 加密存储),实现一键连接。不配置此功能也不影响匿名 SSH 连接的正常使用。

技术上怎么实现的?

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

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

前端是纯 TypeScript + Vite 技术栈(无框架依赖),终端渲染交给 xterm.js,SFTP 文件管理器和主题系统都是原生 TypeScript 实现。整个项目结构很清晰:

src/ssh/ → SSH 协议纯实现层(传输层、加密、认证、通道、SFTP) src/worker/ → Cloudflare Worker 入口和 Durable Objects frontend/src/ → 前端 UI(终端 + SFTP 面板 + 主题系统)

架构总览

浏览器客户端 (TypeScript + xterm.js) │ ├─ 终端 ←→ [WebSocket] ←→ Cloudflare Worker ←→ [TCP Socket] ←→ SSH 服务器 │ └─ SFTP 文件管理器 ←→ [WebSocket] ←→ Cloudflare Worker ←→ [SSH Subsystem] ←→ SFTP 服务器 Durable Object (SSHSessionDO) → 管理会话生命周期、SSRF 防护 Durable Object (UserDBDO) → 用户数据、服务器配置、速率限制(SQLite)

完整支持 IPv4/IPv6 双栈,包括 IPv6 方括号格式自动处理。

谁适合用?

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

最后

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

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

https://github.com/newbietan/CloudSSH

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

一切以仓库文档为主

  • 在线体验版本:https://ssh.newbietan.cn/
  • 在线测试版本(最新功能优先推送):https://sshtest.newbietan.cn/
  • 在线主题编辑器(在线自定义主题配色):https://newbietan.github.io/CloudSSH/theme-editor/

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

http://www.jsqmd.com/news/1128911/

相关文章:

  • 面试口述版:个人对 Prometheus 完整理解
  • 智谱 GLM-5.2 凌晨上新,Code Arena 全球第一意味着什么?
  • AI 导出鸭实操教程:ChatGPT 数学公式如何正确粘贴,文档导出转换一步到位
  • C语言 用递归实现revserse_string详解(附有画图)
  • 阴极发光在 SEM 分析中的应用
  • AI 全栈开发实战(8):前端开发(二)——流式对话界面与 Markdown 渲染
  • vue3 错误记录
  • AI果蔬清洗分拣工段智能控制系统
  • CSUR:城市天际线道路系统的终极解决方案,告别单调道路设计
  • 2026年渗透测试实战工具链:从信息收集到权限维持的完整作战手册
  • AI 导出鸭实操指南:智谱清言生成 word 文档指令落地使用技巧
  • FastbootEnhance:Windows平台Android设备分区管理与Payload解析的专业解决方案
  • SMB服务安全实战:从漏洞赏金视角剖析攻击链与防御
  • web-第7次课后作业-2
  • Windows安全拦截实战:从日志与签名验证AI桌面应用安装
  • Python流程控制练习题001篇
  • 发送http请求的自定义函数库文件
  • 【关注可白嫖源码】--课程设计--毕业设计--springboot微博客户端[编号:project34944](案例分析)
  • 5个理由告诉你为什么Altium Designer元件库能让你告别设计焦虑
  • Claude 怎么把表格导出|AI 导出鸭一站式表格导出操作全教程
  • YD/T 6770—2026《人工智能 关键基础技术 具身智能基准测试方法》
  • LP5812 RGB LED驱动芯片与PIC18F微控制器的智能灯光系统设计
  • Docker容器受限环境下反弹Shell的五种实战技巧与防御策略
  • 信息约简对智能系统预测的重要性
  • 2026 AI 开发者生存指南(4):本地运行大模型方案大全——从 Ollama 到 LM Studio
  • Redis 分布式锁续期:锁还在,不代表业务安全
  • HashMap 源码
  • 项目编号:project51868|SpringBoot非遗保护与推广平台:项目档案、传承人、资讯传播与后台管理技术栈:SpringBoot + MySQL
  • FlexASIO终极指南:让普通音频设备拥有专业级ASIO性能
  • 傅里叶红外光谱(FT-IR)和原位红外(In Situ FTIR)应用案例