我正在尝试远程运行图形程序,而不使用 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
我在远程服务器上遇到了同样的问题。请尝试以下操作:
将以下内容添加到您的
sshd_config
:AddressFamily inet
重启 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
可能会丢失您正在工作的桌面会话。