「在浏览器里就能直接开 SSH,不用装任何客户端」——这种听起来很美好的事,ternssh 把它做出来了,而且还能顺手部署到 Cloudflare Workers 上跑。

打开网页就是终端,不用装任何 SSH 客户端

简单说,它就是一个跑在网页里的 SSH 工作台:终端、SFTP 文件管理、状态监控、可拖拽的仪表盘,全在一个浏览器标签页里搞定。你想偷懒不装软件,或者手边只有个平板/手机,都能直接连上服务器干活。

这是什么

ternssh 是一个运行在 Cloudflare 边缘的网页版 SSH 管理工具(也可以完全自托管)。它的定位很明确:把「连服务器」这件事,从「装个客户端」变成「开个网页」。

官方给的一句话描述是:SSH workspace on Cloudflare · Draggable dashboard · Terminal · SFTP · Status monitoring。

也就是说,它不止是个终端,而是把运维日常最常用的几样东西打包成了一个可拖拽的工作台:

  • Terminal——正经的交互式终端,该有的都有;
  • SFTP——在网页里直接传文件、管理目录,不用再开个 FileZilla;
  • Status monitoring——主机状态监控,资源占用一眼看清;
  • Draggable dashboard——面板可以拖来拖去,按自己的习惯摆。

项目本身是 TypeScript 写的,协议是 GPL-3.0-or-later,目前 600+ star,还在活跃更新。

为什么要在浏览器里开 SSH

传统连服务器,要么装个 PuTTY / Terminal / 各种客户端,要么公司电脑装不了软件就傻眼。ternssh 这种「网页形态」的好处很实在:

  1. 不用装客户端。只要有浏览器,打开网址就能用,临时的机器、公共电脑、iPad 都行。
  2. 天然跨设备。手机、平板、网吧电脑,只要能开网页就能连。
  3. 好做鉴权。配合 Cloudflare Access,可以用你已有的零信任团队域做登录校验,比把 22 端口裸奔在外网安全得多。

一个可拖拽的仪表盘,终端、SFTP、监控面板随便摆

当然,它不打算替代你本地那个顺手的终端——它的价值在于「随时、随地、不用准备」地连上一台机器。

两种部署姿势

这是 ternssh 最讨喜的地方:既能在 Cloudflare 上「白嫖」边缘运行,也能自己用 Docker 跑。

Docker 一条命令

官方提供了预构建镜像,最省事:

1
2
3
4
5
6
docker run -d \
--name ternssh \
-p 8787:8787 \
-v ternssh-data:/app/.wrangler \
--restart unless-stopped \
ghcr.io/haradakashiwa/ternssh:latest

启动后访问 http://localhost:8787 即可。如果你还想叠一层 Cloudflare Access 做登录保护,设上 ACCESS_TEAM_DOMAIN 和 ACCESS_AUD 两个环境变量就行。

也支持 Docker Compose(docker compose -f docker-compose.ghcr.yml up -d),或者自己 docker compose up -d --build 从源码构建。

Cloudflare Workers 一键部署

不想自己维护服务器?项目贴心地给了一个 Deploy to Cloudflare 按钮,点一下就能把整套跑在 Cloudflare 边缘上。底层用的是 ternssh-cloudflare-workers-template 这个模板仓库,跟着官方部署文档走就行。

Workers 一键部署,或 Docker 一条命令,任选

小结

ternssh 解决的是一个很小但很烦的问题:「我就想临时连一下服务器,非要装个客户端吗?」

它用「网页工作台」的形态把终端、SFTP、监控揉到一起,又用 Cloudflare Workers / Docker 两种部署方式照顾了「懒人」和「爱折腾的人」。如果你想给自己的小服务器加一个随时能连的网页入口,或者单纯想少装一个软件,它值得一试。


ternssh 开源 GPL-3.0 TypeScript

一个跑在浏览器里的 SSH 工作台:终端 + SFTP + 状态监控 + 可拖拽仪表盘。可部署到 Cloudflare Workers,也可用 Docker 自托管,免装客户端、随处可连。

★ 637GitHub Star
⑂ 154Fork
GPL-3.0开源协议
TypeScript SSH Cloudflare Docker Web Terminal SFTP