如何通过浏览器实现SSH X11转发

问题描述 投票:0回答:1

我正在计划实现SSH -X给出的功能。这用于远程打开基于GUI的应用程序。因此,我想了解涉及的组件以及应该实施的组件。我知道如何设置此方法,例如在主机中启动VNC服务器并分配DISPLAY变量。并从远程客户端进行SSH -X连接并执行所需的GUI应用程序外壳脚本(例如xeyes,xclock等)。如果有人有更高级的信息,请共享。我的要求是设计一个基于Web的“ SSH X”客户端。市场上有很多用于Web SSH的工具,但没有支持SSH X11转发的工具。

ssh x11 vnc xvfb x11-forwarding
1个回答
1
投票

X11协议本质上是网络透明的,因此ssh -X只需在远程系统上设置一个端口并设置DISPLAY变量,以便X程序将X11协议写入该端口,然后将其流回本地侧。 (这是一种简化;还涉及身份验证。)

如果要在浏览器中执行此操作,首先必须具有某种服务器端组件,该组件可以执行SSH操作并将数据流转换为浏览器可以使用的内容。浏览器不允许使用JavaScript打开到远程系统的任意TCP端口,因为这样做会带来巨大的安全风险。

您还必须找到某种方法在浏览器中呈现X11协议。本质上,您将实现基于Web的X服务器(希望在WebAssembly之类的系统中)。您应该阅读该规范的现有规范,并查看流行的开源X11实现,例如Xorg。

我应该指出,由于需要实施完整的X服务器,因此这是一项艰巨的工作。基于VNC的协议要简单得多,因为它们不需要实现绘制图元,而仅在屏幕上渲染(可能是压缩的)图像流。

© www.soinside.com 2019 - 2024. All rights reserved.