大多数人希望能够通过 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 命令向您的显示器发送信息。