环境细节
服务器的/etc/ssh/sshd_config相关部分:
X11Forwarding yes
X11DisplayOffset 10
X11UseLocalhost no
客户端的$HOME/.ssh/config相关部分:
Host *
XAuthLocation /opt/X11/bin/xauth
ForwardX11 yes
ForwardX11Trusted yes
在macOS High Sierra上使用XQuartz。
问题
我正在启动一个vagrant Ubuntu 18.04虚拟机。我已经添加了一个vagrant
用户之外的第二个用户。
ssh -X vagrant@ubuntu-bionic xclock
当我以vagrant
用户登录时,我可以使X11Forwarding正常工作。但是当我以ops
用户登录时,我无法使X11Forwarding正常工作。
ssh -X ops@ubuntu-bionic xclock
X11 forwarding request failed on channel 0
Error: Can't open display:
我希望能够让
ops
用户正常工作。当我使用客户端时,$DISPLAY
有值。以vagrant
用户登录时,$DISPLAY
也有值。但是以ops
用户登录时,$DISPLAY
的值未设置。如果我将$DISPLAY
设置为与vagrant
用户相同,则会出现相同的错误信息:Error: Can't open display: localhost:10.0
当 X11UseLocalhost yes
时
Error: Can't open display: ubuntu-bionic:10.0
当 X11UseLocalhost no
时
如果我以 ops
登录,然后执行 sudo su - vagrant
,$DISPLAY
仍然未设置。如果我以 vagrant
登录,然后执行 sudo su - ops
,$DISPLAY
就会被继承。
我错过了什么,才能让它正常工作?我已经在每个用户中运行了 xhost +
(包括 sudo -s root xhost +
),但它仍然不起作用。
如果我在 ssh 命令中添加 -vv
,则连接为 vagrant
时会看到此消息:
X11 forwarding request accepted on channel 0
作为运维
:
Remote: X11 forwarding disabled in user configuration file.
X11 forwarding request failed on channel 0
~ops/.ssh/config
文件中有什么内容?(即在/home/ops/.ssh/config
中)与vagrant
用户主目录中的文件有什么区别? - ivanivanvagrant
/ops
的主目录当前没有~/.ssh/config
文件。 - John Jelinekvagrant
/ops
都有本帖顶部提到的~/.ssh/config
的内容。但仍然无法工作。 - John Jelinek