在远程系统上显示 X 程序

在远程系统上显示 X 程序

我有 Ubuntu 14.04 和 Fedora 20 作为测试环境。我正在尝试通过 SSH 会话将 X 程序从 Fedora 发送到 Ubuntu。我的设置如下:

在 Ubuntu 上运行:

Xhost +IP Address of Fedora

这将返回:

10.10.24.153 being added to access control list

然后我从 Fedora 系统运行:

DISPLAY=10.10.25.168:0.0

此步骤将 Fedora 的显示重定向到 Ubuntu 系统。

然后我从 Ubuntu ssh 到 Fedora。此时,当我尝试从 ssh 提示符启动程序(例如 gedit)时,我得到以下信息:(并且没有出现 gedit 窗口)

Unable to init server: Could not connect: Connection refused (gedit:7358): Gtk-WARNING **: cannot open display:

然而,当我直接从 Fedora 启动 gedit 时,它会出现在我的 Ubuntu 系统上,尽管 Fedora 端出现错误:

** (gedit:7372): WARNING **: Couldn't connect to accessibility bus: Failed to connect to socket /tmp/dbus-77RFAr0MHI: Connection refused

我应该能够从 ssh 会话启动基于 X 的程序,它会出现在屏幕上。有人知道我做错了什么吗?

答案1

如果您想在ssh会话中运行 X 应用程序,您只需告诉ssh其承载流量即可。不要运行xhost也不要覆盖DISPLAY

ssh -Yf remote-host some-x-application

-Y标志指示在 上ssh创建一个环境变量并通过加密连接传输生成的流量。该标志指示在后台执行所有这些操作,以便看起来会话已立即终止。DISPLAYremote-host-fssh

如果您希望在连接末端明显运行交互式 shell,ssh您也可以执行以下操作:

ssh -Y remote-host
...log in as necessary...

some-x-application &
another-x-application &
...etc...

wait; exit

相关内容