我正在尝试在Mac上使用ssh转发功能以在本地显示远程GUI应用程序。
在Mac上,我安装了官方的xserver XQaurtz,将其设置如下。
$ cat ~/.ssh/config
Host *
XAuthLocation /opt/X11/bin/xauth
ForwardAgent yes
ForwardX11 yes
然后我使用“ ssh -v -X user @ remote_machine”登录ubuntu机器,然后使用xclock进行测试。
$ ssh -v -X user@remote_machine
OpenSSH_7.9p1, LibreSSL 2.7.3
debug1: Reading configuration data ~/.ssh/config
debug1: /Users/bwu/.ssh/config line 1: Applying options for *
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 48: Applying options for *
debug1: /etc/ssh/ssh_config line 52: Applying options for *
debug1: auto-mux: Trying existing master
在远程计算机上,由于$ DISPLAY为空,xclock无法启动。
$ xclock
Error: Can't open display:
我又进行了两次测试。
从同一个Mac,ssh登录到另一台centos 7计算机,它正在工作。 $ cat / etc / ssh / sshd_config X11转发是 X11DisplayOffset 0
从ubuntu主机上,通过ssh登录到上面的ubuntu机器,它正在工作。 $ cat / etc / ssh / sshd_config X11Forwarding yes X11DisplayOffset 0
所以我们得到了以下结果。
mac to centos, working ubuntu to ubuntu, working mac to ubuntu, not working
Test 1 indicates the issue might locate on remote ubuntu machine.
Test 2 indicates the issue might locate on local mac machine.
这怎么了?我错过了什么吗?
关于此问题的进一步更新。我注意到x11转发在centos或ubuntu上(从我的Macbook上)“随机”运行,但是几个小时后它可能又能正常工作。
我检查了centos和ubuntu上的sshd配置,没什么特别的,它们在x11转发部分相同。我不知道为什么。
X11Forwarding yes
X11DisplayOffset 0
#X11UseLocalhost yes