我有一台运行 gdm 的 Ubuntu 服务器,其中有图形用户会话。我在该服务器上的远程主机上也有一个打开的 ssh 控制台。
我想从该远程控制台运行 x windows 应用程序。
export DISPLAY=0.0
xclock
Error: Can't open display: 0.0
如何在不重新启动 gdm 和启用 xhost + 远程连接的情况下做到这一点,有什么办法吗?我不能使用本地命名管道连接到显示服务器吗?
答案1
您需要以登录的同一用户身份运行要显示的命令。如果正在gdm
运行,则该用户为 root。
# DISPLAY=:0.0 yourcommand
or
# export DISPLAY=:0.0
# yourcommand
如果您想允许本地计算机上的所有其他用户使用显示器,请以显示器的当前用户身份运行此命令:
xhost +local:
(: 之后什么也没有)
如果您不想允许其他用户使用显示器,那么这可能会成为一个问题。在这种情况下,您需要使用xauth
更细粒度的控制。
答案2
在 X-Windows 会话中,打开终端并输入
xhost +local
然后在远程 SSH 终端中运行命令:
export DISPLAY=:0.0
xclock &
这应该可以正常工作。
答案3
display 属性需要以 ':' 开头。整个符号实际上是主机:显示号,但如果您希望它显示在本地主机上,则可以省略主机部分。但是,不能省略冒号。因此“:0.0”可能是您想要的值(并且“:0”可能也可以)。
当从远程主机进入时,实际上最简单的事情是(因为它负责 X 身份验证和确保 X 连接安全)是让 ssh 为您处理 X 屏幕转发和环境设置。您可以使用 -X 开关执行此操作:
ssh -X 远程主机.example.com
完成后,你可以检查 DISPLAY 变量,你会发现它类似于:10.0,因为它实际上是将远程 X 显示端口转发到本地显示器。