非 root 用户的 X11 转发不起作用

非 root 用户的 X11 转发不起作用

交叉发布

环境细节

服务器的 /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$DISPLAYvagrantsudo su - ops$DISPLAY

我缺少什么才能让它工作?我已经xhost +在每个用户(包括sudo -s root xhost +)中运行了它,但它仍然不起作用。

如果我添加-vvssh 命令,则在连接时我会看到以下消息vagrant

X11 forwarding request accepted on channel 0

并作为ops

Remote: X11 forwarding disabled in user configuration file.
X11 forwarding request failed on channel 0

相关内容