让 Windows 10 上的 Ubuntu bash 运行ssh -X 以在远程服务器上获取 GUI 环境

让 Windows 10 上的 Ubuntu bash 运行ssh -X  以在远程服务器上获取 GUI 环境

每次我从 Mac 启动到 Linux(Debian)的 ssh 连接时,都会收到此警告:

No xauth data; using fake authentication data for X11 forwarding.

对于使用 ssh 的工具(例如 git 或 mercurial)也会发生这种情况。

我只是想对我的系统进行本地更改,以防止出现这种情况。

注意:我的 Mac OS X(10.8.1)上确实有 X11 服务器(XQuartz 2.7.3(xorg-server 1.12.4))并且它运行正常,我可以成功地在本地或远程启动时钟。

答案1

发布的解决方案对我都不起作用。我的客户端(桌面)系统运行的是 macOS 10.12.5 (Sierra)。我添加了命令-v的选项ssh,它告诉我,

debug1: No xauth program.

这意味着它没有正确的程序路径xauth。(在此版本的 macOS 上,路径xauth是非标准的。)解决方案是将此行添加到/etc/ssh/ssh_config(可能/etc/ssh/config在某些设置中)或~/.ssh/config(如果您没有管理员权限):

XAuthLocation /opt/X11/bin/xauth

现在警告信息已经消失。

答案2

找到了原因,我的~/.ssh/config不完整,你需要两者:

Host *
    ForwardAgent yes
    ForwardX11 yes

我的错误是我只包含了 ForwardX11 选项。

答案3

让 Windows 10 上的 Ubuntu bash 运行ssh -X 以在远程服务器上获取 GUI 环境

  • 第一的

安装以下所有内容。在 Windows 上,安装Xming。在 Ubuntu bash 上,使用sudo apt install安装ssh xauth xorg

sudo apt install ssh xauth xorg
  • 第二

转到包含ssh_config文件的文件夹,我的是/etc/ssh

  • 第三

ssh_config以管理员身份 (USE )编辑sudo。在 里面,删除、、行中的ssh_config井号,并将相应参数设置为。#ForwardAgentForwardX11ForwardX11Trustedyes

# /etc/ssh/ssh_config

Host *
    ForwardAgent yes
    ForwardX11 yes
    ForwardX11Trusted yes
  • 向前

在文件中,删除和之前的ssh_config哈希值,并在文件末尾添加一个新行以说明 xauth 文件的位置,记得写下您自己的 xauth 文件的路径。#Port 22Protocol 2XauthLocation /usr/bin/xauth

# /etc/ssh/ssh_config

#   IdentifyFile ...
    Port 22
    Protocol 2
#   Cipher 3des
#   ...
#   ...
    ...
    ...
    GSSAPIDelegateCredentials no
    XauthLocation /usr/bin/xauth
  • 第五

现在,我们已经完成ssh_config文件编辑,离开编辑器时请保存它。现在转到文件夹~$HOME,将其附加export DISPLAY=localhost:0.bashrc文件并保存。

# ~/.bashrc
...
...
export DISPLAY=localhost:0
  • 最后的

我们快完成了。重新启动您的 bash shell,打开您的Xming程序并使用ssh -X yourusername@yourhost。然后享受 GUI 环境。

ssh -X yourusername@yourhost

该问题也出现在 Windows 上的 Ubuntu 子系统中,链接位于

https://gist.github.com/DestinyOne/f236f71b9cdecd349507dfe90ebae776

注意:链接文本包含 2 个拼写错误(XauthLocaion而不是XauthLocation

答案4

我本想将此添加为评论,但我没有足够的代表。再添加一行索林的解决方案对我有用。

在客户端计算机上,使用以下命令编辑 ssh 配置文件vim ~/.ssh/config

然后添加以下几行:

Host *
    ForwardAgent yes
    ForwardX11 yes
    XAuthLocation /opt/X11/bin/xauth

您可以xauth使用以下方法再次确认您的位置:

which xauth

相关内容