Dar*_*zer 164 ssh x11forwarding warning
当我ssh -X
在 Mac(运行 OS X 10.6.7)上使用连接到我的 Ubuntu (11.04) 框时,我收到以下警告:
警告:不受信任的 X11 转发设置失败:未生成 xauth 密钥数据警告:无 xauth 数据;使用伪造的身份验证数据进行 X11 转发。
我能做些什么来消除这个警告吗?如果没有,我可以安全地忽略它吗?
X11 转发似乎工作正常,但我确实看到了以下消息:
Xlib:显示“localhost:10.0”上缺少扩展“RANDR”。
这与警告有关吗?(我猜不是。如果不是,我将就此提出一个新问题。)
use*_*336 182
您不想使用-Y
标志而不是-X
标志的任何理由?
很简单,之间的区别-X
,并-Y
是-Y
能够信任的X11转发。
Wil*_*ley 25
如果您在 2015 年来到这里:即使其他一切都设置正确,当使用ssh -X
和运行 XQuartz 版本 <= 2.7.7时,这也可能发生在 Mac OS X 10.10 Yosemite 上。根本原因是 X11 显示套接字被写入 xauth 搜索路径之外:XQuartz 跟踪器中的问题#2068。
编辑:此后在新主页xquartz.org 上发布了一个固定的 XQuartz ,从那里安装最新版本(当前为 2.7.9)将解决该问题。
Flu*_*lup 18
如果您在使用 时也收到相同的消息-Y
,则该xauth
程序可能在服务器上丢失。在类似 Debian 的系统上,您需要该xauth
软件包。在类似 RedHat 的系统上,您需要该xorg-x11-xauth
软件包。
小智 18
小心(厌倦阅读不完整的答案会导致安全漏洞)
使用 ssh -Y 意味着这里有虚假的 xauth 信息,这很糟糕!
ssh -X 应该可以工作,因为 XQuartz 一旦启用,就会使用 xauth。唯一的问题是 ssh 正在 /usr/X11R6/bin 中寻找 xauth,而在带有 XQuartz 的 macos 中,它在 /opt/X11/bin 中
安全解决:
启用首选项(Cmd-,) 的“安全”选项卡中的第一个选项,该选项启用经过身份验证的连接
将以下内容添加到 $HOME/.ssh/config
XAuthLocation /opt/X11/bin/xauth
ssh -X you_server
以安全的方式工作
小智 17
在这种情况下,“不受信任”意味着您不信任该连接。SSH 将使用额外的安全措施来尝试使 X11 转发更安全。“受信任”意味着您完全相信远程主机上的任何人都不会访问您的 Xauth 数据并使用它来监视您的击键等。
这个术语实际上让我困惑了多年。我认为“可信”连接更安全。但实际上,这是一个您应该在连接值得信赖的情况下使用的选项,并且您希望在没有额外安全措施妨碍您的情况下运行东西。“不受信任”是使处理不受信任的远程主机(有点)更安全的方法。
“不受信任”连接试图通过启用 X11 安全扩展并禁用您(希望)不需要的其他扩展来限制黑帽可以对您做什么。这可能就是使用 -X 禁用 RandR 的原因。您是否需要能够从远程主机旋转您的 X 显示器?
同样重要的是要注意“不受信任的”X11 转发会在一定时间后关闭,以防止您不小心将其打开。之后打开窗口的新尝试将失败。在我阅读足够多的文档以了解正在发生的事情之前,这让我咬了好几次。
Dom*_*omQ 12
首先,您应该排除任何服务器端问题。你ssh -X
能从任何其他主机成功吗?不ssh -Y
工作,同时ssh -X
不?在任何一种情况下,假设 ssh + X11 在您的服务器上设置正确,然后继续下一部分。
如果您无法检查(例如,您只有一台运行 X11 的笔记本电脑),您可以ssh
使用假会话从服务器到自身:
export DISPLAY=:44
# (Bourne shell) 或setenv DISPLAY :44
# (csh / tcsh)xauth add $DISPLAY MIT-MAGIC-COOKIE-1 1234
# 仅用于本次测试的假饼干ssh -X localhost env |grep DISPLAY
预期结果:应该在 ssh-to-self 会话的远程端设置一个 DISPLAY 变量。如果没有结果,您的服务器可能配置错误(例如 X11 库和/或xauth
命令可能丢失;或者 sshd 配置可能设置为拒绝 X11 访问)
根据威尔·安利的回答
ssh -vv -X
输出您引用的错误消息是一种可能有多种原因的症状。使用 再试一次,这应该会为您提供有关 X11 隧道设置失败原因的其他线索。ssh -X -vv remotehost
您是否看到出现以下消息?
debug1:没有 xauth 程序。如果是这样的话,
xauth
命令所在的位置:哪个xauth
主持人 * XAuthLocation /opt/X11/bin/xauth根据步骤 1 的发现调整此路径 —感谢 Jan-Willem Arnold
我没有可以表现出这种行为的设置,所以这是黑暗中的一个镜头:
如果为发出此警告的主机设置ForwardX11Trusted
为"no"
,则警告可能会被抑制。您可以将其放置在~/.ssh/config
或 中/etc/ssh/ssh_config
,并且您可以通过包含Host <hostname>
在上面的行中来使选项特定于特定主机。该<hostname>
组件与您在命令行上键入的内容(不是解析的主机名)相匹配,并且它可以包含通配符。
小智 6
如果安装xauth
不正常,一个特别烦人的情况可能是.Xauthority
文件损坏。这种特殊情况允许一些 X 客户端工作,但不允许其他更倾向于使用较新的显示器失败的客户端。删除并重新创建.Xauthority
文件可以解决该问题。
小智 6
正如上面已经解释的,以下内容对我有用:
编辑~/.ssh/config以添加行
Host *
XAuthLocation /opt/X11/bin/xauth
Run Code Online (Sandbox Code Playgroud)
现在ssh -X 主机名可以工作(XQuartz 2.7.11、macOS 10.4 Mojave)