![在远程系统上显示 X 程序](https://linux22.com/image/72170/%E5%9C%A8%E8%BF%9C%E7%A8%8B%E7%B3%BB%E7%BB%9F%E4%B8%8A%E6%98%BE%E7%A4%BA%20X%20%E7%A8%8B%E5%BA%8F.png)
我有 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
创建一个环境变量并通过加密连接传输生成的流量。该标志指示在后台执行所有这些操作,以便看起来会话已立即终止。DISPLAY
remote-host
-f
ssh
如果您希望在连接末端明显运行交互式 shell,ssh
您也可以执行以下操作:
ssh -Y remote-host
...log in as necessary...
some-x-application &
another-x-application &
...etc...
wait; exit