为 SSH 打造原生图形界面外壳

查看原文 HN 讨论

文章摘要

作者 Marcus Lewis 提出了一个设想:为远程服务器和边缘设备提供一个基于浏览器的图形化”外壳”(graphical shell),让它们可以从其他设备上以图形方式操作,而不必局限于传统终端。他指出,像 Jupyter、Tensorboard 这类跑在远程服务器上的 Web 应用各自为政、各有一套安全约定,缺少一个统一的框架来安全地把图形界面交付到远程机器上。经典做法是手动敲 ssh -L 24601:localhost:8889 ... 这样的端口转发命令,繁琐且不直观。

技术上,他的方案把每个应用都做成一个监听 Unix 域套接字(而非 localhost 端口)的 HTTP 服务器,借此获得更好的安全与权限管理;加密交给 SSH 隧道来做,而不是让每个应用各自实现;再加一层 API,让应用可以被发现并注册为特定服务(如文本编辑器)。系统同时支持传统 HTML Web 应用和名为 “outerframe” 的原生应用——一种”多平台”(而非”跨平台”)的思路,用跨平台协议对接各平台专属的前端代码。

作者为此发布了两个配套项目:Outer Loop(一个内置 SSH 的浏览器)和开源的 Outer Shell(图形外壳)。他认为把浏览器与 SSH 客户端合二为一,能带来”只需指向一台服务器即可”的流畅体验,无需 sudo、也不用向网络暴露新端口。所有代码都是预编译分发的,用户不必等待编译;后端采用依赖精简、静态链接的方式以便通过 SSH 轻量部署。

HN 评论精华

这篇帖子引发了激烈争论,评论区大致分成”这是重新发明轮子”和”方向有趣值得探索”两派。