ssh -X
连接到Ubuntu(11.04)盒时,出现以下警告:警告:不可信的X11转发
设置失败:未生成xauth密钥数据
警告:没有xauth数据;
使用伪造的身份验证数据进行X11转发
我可以做些什么使此警告消失?如果不是,我可以放心地忽略它吗?
X11转发似乎可以正常工作,尽管我确实看到了以下消息:
Xlib:扩展名“ RANDR”丢失on
显示“ localhost:10.0”。
与警告有关吗? (我猜不是。如果不是,我将对此提出一个新问题。)
#1 楼
您是否不想使用-Y标志而不是-X标志?很简单,-X和-Y的区别在于-Y启用了受信任的X11转发。 />
评论
不,我只是在写问题时才不知道-Y标志。我相信这确实是一个解决方案。更改您的答案,这样就不成问题了(如果您简要地解释了-Y和-C之间的区别,那将是很好的选择),我会接受的。
– Daryl Spitzer
2012年2月2日,下午1:44
有什么情况下您不想使用-Y而不是-X的?
–公鸡
15年7月3日在19:06
@Rooster对于不支持-Y的旧系统,我会说
–石油
16年1月15日在7:53
故障排除技巧:运行“ ssh -vv ...”并查找xauth行和任何错误消息。您可以尝试运行直接显示的xauth行。对于我来说,我需要它类似于“ xauth list:0”(可信)而不是“ xauth -f / tmp / ssh ... list:0”(不可信)。远程主机/ etc / ssh / ssh_config(或〜/ .ssh / config)中的-Y已修复,“ ForwardX11Trusted yes”已修复。
–科蒂斯·雅洛普(Curtis Yallop)
17年4月11日在21:21
注意-Y不会使您的连接更受信任。而是,在使用该选项之前,它要求它被信任。 -Y使ssh放弃一些使用-X时将提供的篡改保护。
– Lutz Prechelt
18/12/19在10:02
#2 楼
如果您要在2015年来到这里:即使一切都设置正确,当使用ssh -X
并运行XQuartz版本<= 2.7.7时,在Mac OS X 10.10 Yosemite上也会发生这种情况。根本原因是X11显示套接字写在xauth搜索路径之外:XQuartz跟踪器中的问题#2068。编辑:固定的XQuartz自此在新主页xquartz.org上发布,并从那里安装最新版本(当前为2.7.9)。
评论
谢谢!我不知道我刚刚从XQuartz页面顶部下载的XQuartz实际上不是最新版本。
– Craigds
2015年8月7日下午4:57
值得注意的是brew install xquartz当前安装的版本是2.7.7。
–马丁·切弗(Martin Cleaver)
16年1月9日在23:03
brew install Caskroom / cask / xquartz应该通过HomeBrew为您提供最新的XQuartz
–尼克
17年6月10日在22:49
或更短的酿酒桶安装xquartz。
–于富兰
18-09-28在13:27
终于在5年后,我有了新版本的XQuartz!他们说他们永远不会更新它。。。为什么苹果不支付它应有的尊重,这超出了我。
–东町
20年8月26日在17:21
#3 楼
如果即使使用-Y
时仍收到相同的消息,则服务器上可能缺少xauth
程序。在类似Debian的系统上,您需要xauth
软件包。在类似RedHat的系统上,您需要xorg-x11-xauth
软件包。#4 楼
在这种情况下,“不受信任”表示您不信任该连接。 SSH将使用其他安全措施来尝试使X11转发更安全。“受信任”意味着您完全有信心远程主机上的任何用户都不会访问您的Xauth数据并使用它来监视您的击键。
这种术语实际上使我困惑了很多年。我以为“信任”连接更安全。但是实际上,在连接值得信赖并且您希望在不妨碍其他安全措施的情况下运行内容时,应该使用该选项。 “不受信任”是使它(某种程度上)可以更安全地处理不受信任的远程主机。扩展并禁用您(希望)不需要的其他扩展。这可能是为什么使用-X禁用RandR的原因。您是否需要能够从远程主机旋转X显示器?
还需要注意的是,“不信任” X11转发会在一定时间后关闭,以防止您意外离开它上。之后,尝试打开窗口的新尝试将失败。在我阅读足够的文档以了解正在发生的事情之前,这让我有点难过。
#5 楼
注意(厌倦了阅读不完整的答案,这会导致安全漏洞)使用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
以安全的方式工作#6 楼
排除服务器端问题首先,应排除所有服务器端问题。您是否可以从任何其他主机成功
ssh -X
? ssh -Y
不能工作吗?无论哪种情况,都假定在服务器上正确设置了ssh + X11,然后继续进行下一节。如果您无法检查(您只有一台笔记本电脑在运行,例如X11),您可以使用伪造会话将
ssh -X
从服务器发送到自身: /> ssh
#仅用于此测试的假Cookie export DISPLAY=:44
预期的结果:在ssh-to-self会话的远程端应设置一个DISPLAY变量。如果没有结果,则可能是服务器配置错误(例如,X11库和/或
setenv DISPLAY :44
命令可能丢失;或者sshd配置可能设置为拒绝X11访问)在Mac上:检查Xquartz是否为最新版本
根据Will Angley的回答
检查
xauth add $DISPLAY MIT-MAGIC-COOKIE-1 1234
输出您引用的错误消息是一种症状可能有很多原因。请再次尝试
ssh -X localhost env |grep DISPLAY
,它应该为您提供有关X11隧道设置失败的原因的其他线索。您是否看到以下消息? />
注意客户机系统上
xauth
命令所在的位置:debug1: No xauth program.
在〜/ .ssh / config的最后添加以下内容(并添加注释到提醒自己以后再使用它):
which xauth根据步骤1的发现调整此路径—感谢Jan-Willem Arnold
#7 楼
我没有可以显示此行为的设置,因此这是黑暗中的镜头:如果将发出此警告的主机的ForwardX11Trusted
设置为"no"
,则警告可能会被抑制。您可以将其放置在~/.ssh/config
或/etc/ssh/ssh_config
中,并且可以通过在上一行中包括Host <hostname>
来使选项针对特定主机。 <hostname>
组件与您在命令行上键入的内容匹配(而不是解析的主机名),并且它可以包含通配符。评论
可以使用ssh -Y进行受信任的X11转发,但是如何解决不受信任的问题呢?
– PavelŠimerda
2015年10月1日,12:45
我在Redhat中遇到了同样的错误,现在我可以通过在客户端编辑配置文件/ etc / ssh / ssh_config来解决它。谢谢
–甘加达尔·詹努
18年4月18日在15:25
#8 楼
如果安装xauth
不能正常工作,则一种特别烦人的情况可能是.Xauthority
文件损坏。这种特殊情况使某些X客户端可以工作,但其他客户端却无法在较新的显示器上失败。删除并重新创建.Xauthority
文件可以解决该问题。#9 楼
如上文所述,以下内容对我有用:编辑〜/ .ssh / config以添加行
Host *
XAuthLocation /opt/X11/bin/xauth
,现在ssh -X主机名有效(XQuartz 2.7.11,macOS 10.4 Mojave)
#10 楼
在MacOS Catalina上使用XQuartz 2.7.11,我必须更新/ etc / ssh / ssh_config文件,并在XAuthLocation /opt/X11/bin/xauth
之后添加Host *
,以使ssh -X正常工作#11 楼
我已经安装了最新的XQuartz 2.7.11,但是自那时以来,我想我也已经对该操作系统进行了几次更新。我重新安装了XQuartz 2.7.11,现在可以正常使用了。#12 楼
xauth添加`hostname` / unix:10 MIT-MAGIC-COOKIE-1`openssl rand -hex 16`评论
我不明白...
– Pierre.Vriens
16年6月11日在6:59
评论
xauth程序是否安装在ubuntu服务器上?sudo apt-get install xauth告诉我“ xauth已经是最新版本”
在ubuntu服务器上登录时,“ which xauth”的输出是什么?
实际上,我认为您应该阅读以下解释:mail-archive.com/cygwin-xfree@cygwin.com/msg17927.html…您可以忽略此警告
有时,这可能是由于您的〜/ .Xauthority文件出现问题。如果删除它,它将在下次尝试登录时重新创建。