如何通过 SSH 在我的服务器上运行 GUI?

如何通过 SSH 在我的服务器上运行 GUI?

大多数人希望能够通过 ssh 将窗口转发到他们登录的计算机。我想做相反的事情。

我在桌面上,通过 ssh 登录到我的服务器。服务器本质上是一个媒体中心,它的屏幕是我的电视。我希望能够chromium-browser从 ssh 会话启动,但将其显示在服务器上 - 而不是在我的本地计算机上。

仅运行chromium-browser &不起作用并给我Gtk: cannot open display错误。我是否必须在服务器上设置环境变量才能“将显示导出到自身”?

答案1

是的,X 程序使用DISPLAY环境变量来找出应该将显示发送到哪里。使用 SSH 时,您的DISPLAY环境可能会自动设置为DISPLAY通过 ssh 连接转发回您的客户端计算机(您可以使用 进行检查echo $DISPLAY)。如果您的本地计算机上没有运行 X 服务器,您的远程程序将抱怨无法打开显示。

您应该能够使用以下命令在本地连接的显示器上显式启动浏览器:

env DISPLAY=:0 chromium-browser &

:0是“本地连接的显示编号 0”的简写。

答案2

您需要在远程计算机上运行一个 X 服务器,并知道它配置为什么显示,即 DISPLAY=localhost:1

通过 ssh 进入您的服务器,导出显示变量

export DISPLAY=localhost:1

然后启动你的 GUI。

答案3

ssh 也有自己的 X 转发功能。也许需要在 sshd.conf 中使用 X11Forwarding On 指令进行设置。在这种情况下,您将有一个预设的 DISPLAY 环境变量,名为 X11 的 DISPLAY 程序将通过您的 ssh 连接转发,并且将被加密。接下来,您将能够在 NAT 后面获取 X 个应用程序。

答案4

无论如何,除了正确设置 DISPLAY 变量之外,使用 ssh -X (或 -Y)开关...您确定主机被正确允许显示远程材料吗?

确保远程主机有权使用 xhost 命令向您的显示器发送信息。

相关内容