我在本地网络上有一个 Ubuntu 服务器,我可以通过 ssh 来运行 gedit。它工作得很好。
并且通过 VPN 连接远程 Red Hat 7 失败。我用命令连接:
ssh -X -o ForwardX11=yes -o ForwardX11Trusted=yes rhsrv
然后我就失败了:
$ gedit
(gedit:3085): Gtk-WARNING **: 23:13:00.902: cannot open display: 10.255.255.202:0
为了验证我运行了一些命令:
# is DISPLAY set?
$ echo $DISPLAY
10.255.255.202:0
# Exists the .Xauthority ?
$ strings ~/.Xauthority
MIT-MAGIC-COOKIE-1
$ xauth list
rhsrv:10 MIT-MAGIC-COOKIE-1 43f5b66044bf4645cde63c22213a0c28
$ xauth info
Authority file: /home/joe/.Xauthority
File new: no
File locked: no
Number of entries: 1
Changes honored: yes
Changes made: no
Current input: (argv):1
# Is route back to client pc open? yes:
$ ssh 10.255.255.202 22
[email protected]'s password:
# IPv6 problems? no:
$ sudo egrep "^(X|Ad)" /etc/ssh/sshd_config
AddressFamily inet
X11Forwarding yes
X11UseLocalhost no
$ rpm -qa | grep x11
xorg-x11-apps-7.7-7.el7.x86_64
xorg-x11-font-utils-7.5-21.el7.x86_64
xorg-x11-fonts-Type1-7.5-9.el7.noarch
xorg-x11-xauth-1.0.9-1.el7.x86_64
我尝试过rm ~/.Xauthority
获取新文件,但没有成功。
我尝试过ssh -Y
但没有运气。
更改后/etc/ssh/sshd_config
我运行了:
# systemctl reload sshd
# systemctl restart sshd
# cat /var/run/sshd.pid | xargs kill -1
在客户端电脑上,我运行了一个详细的任务ssh -vv
,并在输出rhsrv
文件中查找线索,但它看起来非常好:
$ egrep "(Req|[Xx]11)" rhsrv
debug1: Requesting [email protected]
debug2: x11_get_proto: /usr/bin/xauth list :0 2>/dev/null
debug1: Requesting X11 forwarding with authentication spoofing.
debug2: channel 0: request x11-req confirm 1
debug1: Requesting authentication agent forwarding.
debug2: X11 forwarding request accepted on channel 0
此内部网络和服务器上的另一个用户报告在 GUI 中运行 Emacs 时没有问题。他到服务器的路由有点不同,因为他连接到网络接口ens192
(172.23.xx),我在其中连接到别名ens193
(10.xxx)。他的$DISPLAY
变量说:
$ echo $DISPLAY
pd9993b1.example.org:0
所以他有一个有效的反向 DNS 查找,而我没有。预计应该$DISPLAY
读成类似的内容localhost:10.0
,但尽管如此,他的 GUI 运行良好。
路由是这样的(但不应该相关):
$ /sbin/routel
target gateway source proto scope dev tbl
default 172.23.10.1 static ens192
10.255.0.0/ 16 10.255.20.1 static ens193
是否有任何日志文件或我错过寻找的东西?