即使使用 xhost 访问,仍显示“无法打开显示”

即使使用 xhost 访问,仍显示“无法打开显示”

我正在尝试远程运行图形程序,而不使用 ssh。我在服务器上设置了显示变量(假设服务器,Linux,不是 ubuntu,也没有 su 权限)指向我的工作站(工作站,Ubuntu 10.04)

setenv DISPLAY workstation.com:0

然后在我的工作站上我尝试了

xhost +server.com

xhost +

然后我通过 ssh 进入服务器(进行测试):

ssh [email protected]

并尝试运行xclock,并收到以下错误:

Error: Can't open display: workstation.com:0

我已经在工作站上查看过/etc/ssh/ssh_config并且应该正确转发:X11Forwarding yes

我该如何解决此问题?

工作站上的哪些日志记录了这些失败的尝试?

解释一下我这样做的原因:我想在服务器上运行批处理作业来调试基于 MPI 的并行程序。我想按照系统管理员提供的说明运行 xterm 作为批处理作业可执行文件。

此设置曾经有效。我重新安装了工作站上的程序,从那时起,我经常收到类似这样的一次性消息The authenticity of host 'hostname (XXX.XXX.XXX.XX)' can't be established.

我尝试修复上述问题,将~/.ssh/known_hosts文件移动到服务器和主机上的备份,然后ssh使用标志将文件从服务器移动到主机-o StrictHostKeyChecking=no。我不再收到该消息,但我想知道这是否是 X11 转发不起作用的原因之一?

答案1

我在远程服务器上遇到了同样的问题。请尝试以下操作:

  1. 将以下内容添加到您的sshd_config

    AddressFamily inet
    
  2. 重启 SSH

(参考:http://www.linuxquestions.org/questions/ubuntu-63/cant-open-display-882197/

答案2

xhost +这是我尝试过的方法,也是不通过 ssh X 转发来操作的,效果如下:

添加到 /etc/gdm/custom.conf

[security]
DisallowTCP=false

这应该会导致 GDM 在 Ubuntu 中启动没有 -nolisten tcp 标志的 Xserver。

然后,sudo service gdm restart

答案3

这是防火墙问题。TCP(端口 6000)总是被阻止,无论我对 xhost、XAuthority 等做什么,转发都不会发生。

Firewall Configuration我使用菜单中的实用程序调整了防火墙设置System > Administration

答案4

从 11.10 (Oneiric) 开始,它使用 LightDM 而不是 GDM。您需要修改 /etc/lightdm/lightdm.conf

在 [SeatDefaults] 下,添加:

xserver-allow-tcp=true

然后重新启动(推荐),否则sudo service lightdm restart可能会丢失您正在工作的桌面会话。

相关内容