环境细节
服务器的 /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 VM。我在该vagrant
用户之外添加了第二个用户。
ssh -X vagrant@ubuntu-bionic xclock
当我以用户身份登录时,我可以让 X11Forwarding 工作vagrant
。 当我以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 +
)中运行了它,但它仍然不起作用。
如果我添加-vv
ssh 命令,则在连接时我会看到以下消息vagrant
:
X11 forwarding request accepted on channel 0
并作为ops
:
Remote: X11 forwarding disabled in user configuration file.
X11 forwarding request failed on channel 0