每次我从 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
井号,并将相应参数设置为。#
ForwardAgent
ForwardX11
ForwardX11Trusted
yes
# /etc/ssh/ssh_config
Host *
ForwardAgent yes
ForwardX11 yes
ForwardX11Trusted yes
- 向前
在文件中,删除和之前的ssh_config
哈希值,并在文件末尾添加一个新行以说明 xauth 文件的位置,记得写下您自己的 xauth 文件的路径。#
Port 22
Protocol 2
XauthLocation /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