当我在我的Mac(运行OS X 10.6.7)上使用ssh -X
连接到我的Ubuntu(11.04)盒时,出现以下警告:
警告:不可信的X11转发设置失败:未生成xauth密钥数据警告:没有xauth数据; 使用假authentication数据进行X11转发。
有什么我可以做,使这个警告消失? 如果不是,我可以放心地忽略它吗?
X11转发似乎工作正常,虽然我看到这样的消息:
Xlib:扩展名“RANDR”缺less显示“localhost:10.0”。
这与警告有关吗? (我猜不是,如果不是的话,我会提出一个新的问题。)
任何你不想使用-Y标志而不是-X标志的理由?
很简单,-X和-Y之间的区别在于-Y使可信的X11转发。
如果您在2015年来到这里,即使其他设置正确,在使用ssh -X
并运行XQuartz版本<= 2.7.7时,Mac OS X 10.10 Yosemite也会发生这种情况。 根本原因是X11显示套接字在Xauthsearchpath之外被写入:XQuartz跟踪器中的问题#2068 。
编辑:一个固定的XQuartz已经在新的主页xquartz.org发布 ,并从那里安装最新版本(目前2.7.9)将解决这个问题。
如果即使在使用-Y
时也收到相同的消息,则服务器上可能缺lessxauth
程序。 在类似Debian的系统上,您需要xauth
软件包。
在这种情况下,“不信任”意味着你不相信连接。 SSH将使用额外的安全措施来尝试使X11转发更安全。 “受信任”意味着您完全有信心在远程主机上无法访问您的Xauth数据,并使用它来监控您的按键。
这个术语实际上使我困惑多年。 我认为“可信”连接更安全。 但实际上,这是一个选项,你应该在连接值得信赖的情况下使用,而且你想在没有额外安全措施的情况下运行。 “不受信任”是使它(更安全)处理不可信的远程主机的一个。
“不受信任”的连接尝试通过使用X11安全扩展和禁用其他扩展(希望)不需要的限制来限制黑帽会对您做什么。 这可能是为什么RandR被-X禁用的原因。 你需要能够从远程主机旋转你的X显示器吗?
另外需要注意的是,在一定的时间之后,“不可信”的X11转发将会closures,以防止您意外地将其closures。 之后,新的尝试打开窗户就会失败。 在我读了足够多的文档来理解发生的事情之前,我已经好几次了。
我没有可以performance出这种行为的设置,所以这是一个黑暗中的镜头:
如果为发出此警告的主机将ForwardX11Trusted
设置为"no"
,则警告可能会被抑制。 您可以将其放置在~/.ssh/config
或/etc/ssh/ssh_config
,并且可以通过在上面的行中包含Host <hostname>
来使特定于特定主机的选项/etc/ssh/ssh_config
。 <hostname>
组件与您在命令行上键入的内容(不是parsing的主机名)匹配,并且可以包含通配符。
如果安装xauth
不起作用,一个特别恼人的情况可能是一个损坏的.Xauthority
文件。 这种特殊的情况允许一些X客户端工作,但是不会有更多倾向于更新显示器的客户端工作。 删除和重新创build.Xauthority
文件可以解决这个问题。
首先,你应该排除任何服务器端的问题。 你能成功地从任何其他主机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
#仅仅为了这个testing的伪装曲奇 ssh -X localhost env |grep DISPLAY
预期结果:在ssh-to-self会话的远程端应该设置一个DISPLAYvariables。 如果你没有得到任何结果,你的服务器很可能是错误configuration的(例如,X11库和/或xauth
命令可能会丢失;或者sshdconfiguration可能被设置为拒绝X11访问)
按照Will Angley的回答
ssh -vv -X
输出 你引用的错误信息是一个症状,可能有很多原因。 用ssh -X -vv remotehost
再试一次,这会给你提供更多线索,说明为什么X11隧道安装失败。
你看到下面的消息出现吗?
debug1:没有xauth程序。
如果是这样,
xauth
命令驻留在:
哪个xauth
主机* XAuthLocation / opt / X11 / bin / xauth
根据步骤1的结果调整此path – 向Jan-Willem Arnold发放信用
我已经安装了最新版本的XQuartz 2.7.11,但是我觉得自那以后我也更新了一些操作系统。 我重新安装XQuartz 2.7.11,现在它工作正常。
xauth add`hostname` / unix:10 MIT-MAGIC-COOKIE-1`openssl rand -hex 16`