让 X 通过 SSH 工作所需的 $DISPLAY 配置存在差异

sil*_*tar 3 x11 ssh xming putty

我使用 Windows 中的 PuTTY+Xming 连接到两个不同的 SSH 服务器 A 和 B。

在服务器 A 上,echo $DISPLAY产生localhost:10.0(已经以某种方式设置);在服务器 B 上,我也手动将DISPLAY变量设置为localhost:10.0

但是,我可以xclock在服务器 A 上使用,但不能在服务器 B 上使用。我可以让它在服务器 B 上工作的唯一方法是将服务器 B 的 IP 地址添加到 Xming 的X0.hosts配置中,并将DISPLAY环境变量设置为我的 Windows 计算机的 IP 地址。

我的问题是,为什么服务器 A 可以xclock在最少的设置下工作(只需启用 X11 转发并将显示位置设置为 PuTTY 中的 localhost:0.0),但服务器 B 却不能?

另外,如何在服务器A上查找将DISPLAY环境变量设置为localhost:10.0的脚本?


附加信息: 1)服务器 A 有一个 ~/.Xauthority 文件,该文件在登录时自动创建,而服务器 B 没有。2) 服务器 B 的 /var/log/auth.log 包含以下错误: sshd[1404]: error: 无法分配互联网域 X11 显示套接字。3)我之前更改过一次服务器B的主机名。

sil*_*tar 6

经过大量谷歌搜索后,发现罪魁祸首是服务器 B 上禁用了 ipv6。

作为解决方法,需要将以下行添加到/etc/ssh/sshd_config

AddressFamily inet
Run Code Online (Sandbox Code Playgroud)

现在应该在之后工作sudo service ssh reload

我在这里这里找到了解决方案。