无法在 WSL 上使用 Ubuntu 生成 xauth 文件

lli*_*eng 5 ssh ubuntu windows-subsystem-for-linux

快速澄清:我在托管 WSL Ubuntu 发行版的 Windows 计算机上运行 X-server。我可以在本地和远程启动 GUI 程序。例如,我可以gvim从本地 WSL 启动,也可以gvim在 SSH 会话时启动。

\n\n
\n\n

WSL 非常适合与远程服务器通信,并且我已经设法使 X 转发正常工作。然而,当我运行命令时,我不断收到以下额外文本ssh -X user@machine_ip我想知道这是否意味着我所有的 GUI 会话都不安全?如果这样的消息没有表明太多潜在的威胁,我可以接受。

\n\n
Warning: No xauth data; using fake authentication data for X11 forwarding.\n
Run Code Online (Sandbox Code Playgroud)\n\n

我已运行以下安装程序和配置步骤,但最后一步失败:

\n\n
mv ~/.Xauthority ~/old.Xauthority \nsudo apt install ssh xauth xorg -y\ntouch ~/.Xauthority\nxauth generate $DISPLAY .\n
Run Code Online (Sandbox Code Playgroud)\n\n

我会收到以下错误消息

\n\n
xauth: (argv):1:  couldn\'t query Security extension on display "localhost:0.0"  \n
Run Code Online (Sandbox Code Playgroud)\n\n
\n\n

我一直在三台 Windows 计算机(两台笔记本电脑和一台台式机)上重现所描述的问题,但以某种方式设法摆脱了Warning: No xauth data;第四台台式计算机上的“ ”消息。然后,我将以下内容从第四台台式计算机复制到其余三台计算机,但没有任何改进。

\n\n
    \n
  1. 文件的内容~/.Xauthority
  2. \n
  3. 添加了以下内容/etc/ssh/config
  4. \n
\n\n
    ForwardAgent no\n    ForwardX11 no\n    ForwardX11Trusted yes\n    SendEnv LANG LC_*\n    HashKnownHosts yes\n    GSSAPIAuthentication yes\n    XauthLocation /usr/bin/xauth\n
Run Code Online (Sandbox Code Playgroud)\n\n
    \n
  1. 添加了以下内容~/.ssh/config
  2. \n
\n\n
Host *\n    ForwardAgent yes\n    ForwardX11 yes\n    ForwardX11Trusted yes\n    Protocol 2\n    GSSAPIDelegateCredentials no\n    XAuthLocation /usr/bin/xauth\n
Run Code Online (Sandbox Code Playgroud)\n\n

最后,我在所有运行 WSL (Ubuntu 18.04 LTS) 的有问题的 Windows 机器上不断收到以下与xauth程序的“对话”。

\n\n
User @ machine \xe2\x9e\x9c  ~  xauth                                                   \nUsing authority file /home/llinfeng/.Xauthority \nxauth> generate $DISPLAY                                                                                  \nxauth: (stdin):2:  unable to open display "$DISPLAY".                                                     \nxauth> generate $DISPLAY .                                                                            \nxauth: (stdin):3:  unable to open display "$DISPLAY".                                                     \nxauth> add $DISPLAY .                                                                                     \nxauth: (stdin):4:  bad "add" command line                                                                 \nxauth>    \n
Run Code Online (Sandbox Code Playgroud)\n\n

在检查手册后xauthadd似乎是一个有效的命令。

\n\n
\n\n

我尝试了三个 WSL 发行版,它们都产生相同的“ No xauth data”错误消息。Microsoft Store 提供的三个发行版包括:Ubuntu、Ubuntu 18.04 LTS 和 Pengwin (Debian)。

\n\n
\n\n

请告知如何获取xauth命令来生成一些正确的“xauth 数据”。

\n

har*_*ymc 1

根据帖子和您的回答,除了此错误消息之外,一切正常。

该消息似乎说“虚假身份验证数据”被发送到远程会话。我不明白如何使用这些数据可以让任何远程攻击者受益,所以我不明白为什么简单地忽略“无 xauth 数据”的警告是不安全的。

WSL 并不是 Linux 的完整实现。许多系统调用和库已实现,但也有许多没有实现。

我个人的观点:我想说,您可以放心地将错误消息视为来自此类错误实现或未实现的功能,然后忽略它。