又写了个好玩的,利用 Cloudflare Durable Object 实现云端的 SSH 会话,浏览器里直接连接

3 月 18 日
 ratazzi

做了一个浏览器端的 SSH 客户端,不需要装任何插件或软件,打开网页就能连。

核心思路是把 Rust 的 SSH 协议实现( fork 的 russh )编译成 WASM ,跑在 Cloudflare 的 Durable Object 里。

DO 通过 cloudflare:sockets 直接建立 TCP 连接到目标 SSH 服务器,浏览器端只需要 WebSocket 。

几个特点:

目前的限制:

技术栈:Rust (WASM) + TypeScript (Hono) + Vite + Tailwind CSS ,部署在 Cloudflare Workers 上。 可以自己部署,只需要一个 Cloudflare 账号,免费额度就够用。

GitHub: https://github.com/ratazzi/edgessh

Demo: https://edgessh.hola.ac

2076 次点击
所在节点    分享创造
9 条回复
hhacker
3 月 18 日
我记得 Durable object 不是持久化的
ratazzi
3 月 18 日
@hhacker 可以持续化一段时间
samli12
3 月 19 日
试了一下好像还行
mcfever
3 月 19 日
这个 web ssh 的方案挺有意思,我做一个原生版本的 https://dartshell.com/
codehz
3 月 19 日
cloudflared 开的那个不是自带 web ssh 吗()
ratazzi
3 月 19 日
@codehz 对,本来一开始是想做一个纯浏览器的 ssh ,因为现有的 web ssh 都依赖一个服务端,需要 vps 来部署

然后 chrome 的 connect 限制有点多,就用 cf 来做 connect ,就不需要 vps 了,做着做着就去玩了 Durable Object
samsaraxy
3 月 20 日
@ratazzi 有部署教程吗
lolo1
3 月 20 日
rdp 也可以搞下啊,也有 wasm 的
ratazzi
3 月 20 日

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://v2ex.ih06.com/t/1199364

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX