Outer Shell:用于 SSH 的原生图形外壳
Outer Shell:用于 SSH 的原生图形外壳
Outer Shell 是一个原生图形外壳,旨在取代或增强基于终端的远程服务器交互。它通过 SSH 提供安全传输,并使用 Unix 域套接字在本地交付应用程序,使服务器能够提供一个包含应用首页的图形“外壳”,用户可以从远程客户端设备访问该首页。
Outer Shell 的工作原理
Outer Shell 将服务器‑客户端关系转变为类似网页浏览器的模型。外壳中的每个应用都是一个小型 HTTP 服务器,提供网页用户界面。为保持安全并避免公开端口,这些 HTTP 服务器使用文件系统中的 Unix 域套接字文件,并通过明确的用户权限进行访问,而不是使用 localhost 端口。
关键技术组件包括:
- SSH 传输:加密和身份验证全部在 SSH 层完成,省去每个单独应用实现自身安全协议的需求。
- Unix 域套接字:应用通过套接字通信,套接字在服务器文件系统中表现为文件,确保其私密性,不会被网络上其他设备访问。
- Outer Loop:用于访问这些图形外壳的专用 SSH 浏览器。
- Outer Frame:用于创建“真正原生”应用的框架,可在此生态系统中使用,超越传统的 HTML/JavaScript。
远程图形应用的架构
Outer Shell 引入了一套 API,允许应用相互发现并交互。例如,注册为文本编辑器的应用可以在用户双击文本文件时被另一个应用触发。这种方式构建了一个集成的远程工具生态,而不是一堆孤立的基于 Web 的服务器工具。
虽然支持传统的基于 HTML 的 Web 应用,作者认为未来的网络将分为两部分:用于阅读的 HTML 与用于生产力的原生平台定制应用。Outer Frame 正是为在远程服务器上实现这些原生体验提供的机制。
社区观点与替代方案
技术用户的讨论指出了若干已有的替代方案以及该方法可能的安全顾虑:
现有工具
一些用户指出已有工具具备类似功能:
- Cockpit:被提及为一个综合的服务器控制台,使用基于套接字的 Web 服务器连接,并实现了后端‑前端分离,已有十多年历史。
- Windows Admin Center:被列为 Windows Server 的基于 Web 的管理面板,对技术水平较低的用户特别有用。
- X11 转发:被指出是将远程服务器图形界面带到本地机器的传统方法。
安全性与实现顾虑
批评者认为让浏览器连接通用套接字会带来安全风险,这也是标准浏览器通常限制此类功能的原因。一些用户质疑是否真的需要专用的客户端应用(Outer Loop),并建议使用标准的 SSH 端口转发(例如 ssh -L)来进行更简洁的原型开发。
潜在改进
有用户建议将系统与现有的 CLI 工作流集成,例如允许用户直接在远程 SSH CLI 提示符下启动外壳应用(如 Editor ~/myrepo),通过一个与本地 X 或 Wayland 会话通信的代理实现。
“与其把 Linux(以及其他)服务器视为拥有传统本地图形操作系统的机器,不如专注于为远程设备提供‘外部’图形外壳。”
项目资源
对实现感兴趣的用户可以参考以下资源:
- Outer Loop: https://outerloop.sh/
- Outer Shell API: https://outershell.org/
- Outer Frame: https://outerframe.org/