好的,这是东西:
1)登录到远程机器
2)检查设置了哪个显示
echo $DISPLAY
3)运行
xauth list
4)复制对应于您的行
DISPLAY
5)输入您的Docker容器
6)
xauth add <the line you copied>*
7)将DISPLAY设置为
export DISPLAY=<ip-to-host>:<no-of-display>
*到目前为止还好吧?
这并不是什么新鲜事……不过,这里有一个转折:
xauth list登录用户打印的行看起来像这样(在我的情况下):
<hostname-of-machine>/unix:<no-of-display> MIT-MAGIC-cookie-1 <some number here>
因为我使用桥接docker设置,所以X转发端口不在本地侦听,因为sshd在容器中未运行。将上面的行更改为:
<ip-of-host>:<no-of-display> MIT-MAGIC-cookie-1 <some number here>
本质上:移除
/unix零件。
<ip-of-host>是sshd运行所在的IP地址。
如上设置DISPLAY变量。
因此错误是
DISPLAY环境变量中的名称与
xauth list/
.Xauthority文件中的条目不是“相同”的,因此客户端可能无法正确进行身份验证。
我切换回不受信任的X11转发设置。
X11UseLocalhost no但是,sshd_config文件中的设置很重要,因为传入的连接将来自“不同”的计算机(docker容器)。



