我只想对我的系统进行本地更改,以防止这种情况出现。
注意:我的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
(如果您没有管理员权限): br /> XAuthLocation /opt/X11/bin/xauth
警告消息消失了。
评论
我的天啊。多年以来,我一直在寻找解决方案,并且这种方法行之有效。我说岁月!请注意,我是通过在〜/ .ssh / config文件的Host *条目下添加该行而不是编辑/ etc / ssh / ssh_config来实现的。我为此找到的唯一文档是在man sshd_config中。
– Demitri
17年7月10日在6:07
这也为我工作。据我了解,由于缺乏资金,目前XQuartz维护得不好。因此,我认为此类移植问题实际上比我预期的要少。
– AlanObject
17年7月23日在17:09
在高塞拉山脉;这也是对我有用的。
–mklein9
18 Mar 10 '18 at 23:52
请注意,即使您的Shell可以在PATH中找到xauth,也可能会遇到此问题!我猜出于安全原因,ssh客户端正在清理您的PATH?
– MarcH
18年5月24日在15:55
该解决方案对我不起作用。我在Win7上使用Cygwin。在“ Host *”条目下或该行之前的〜/ .ssh / config中添加“ XAuthLocation / usr / bin / xauth”没有什么区别。
– David M. Karr
19年1月24日在21:22
#2 楼
找到了原因,我的~/.ssh/config
不完整,您都需要:Host *
ForwardAgent yes
ForwardX11 yes
我的错误是我只包括ForwardX11选项。
评论
我不确定为什么需要/相关。 ForwardAgent用于允许ssh-agent中缓存的密钥通过多个嵌套的SSH连接。它应该与X11没有任何关系。还有一些人说,从安全角度考虑,这不是一个好主意:heipei.github.io/2015/02/26/…
– underscore_d
15年9月24日在21:08
听起来不对,实际上有助于关闭X11转发或修复xauth配置以进行设置。它与ssh代理无关。
–eckes
17-09-22在6:42
此解决方案对我不起作用。
– David M. Karr
19年1月24日在21:23
是〜/ .ssh / config在macOS客户端还是Linux服务器上?这些文件都没有。我确实有一个类似的/ etc / ssh / sshd_config
–Max Coplan
19-09-11的1:30
在Mac OS上,我还必须添加“ XAuthLocation / opt / X11 / bin / xauth”
– beOn
20-10-16在20:25
#3 楼
让Windows 10上的Ubuntu bash运行ssh -X
以在远程服务器上获得GUI环境。安装以下所有程序。在Window上,安装
Xming
。在Ubuntu bash上,使用sudo apt install
安装ssh xauth xorg
。sudo apt install ssh xauth xorg
第二
转到包含
ssh_config
文件的文件夹,我的是/etc/ssh
。第三
以管理员身份编辑
ssh_config
(请使用sudo
)。在ssh_config
内部,删除#
,ForwardAgent
,ForwardX11
行中的哈希ForwardX11Trusted
,并将相应的参数设置为yes
。# /etc/ssh/ssh_config
Host *
ForwardAgent yes
ForwardX11 yes
ForwardX11Trusted yes
Forth
在
ssh_config
文件中,删除#
和Port 22
前面的散列Protocol 2
,并在文件末尾添加新行以声明xauth文件的位置XauthLocation /usr/bin/xauth
,请记住编写您自己的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
)评论
问题不在于Windows。
–卡巴斯德
17年9月22日在7:53
在MacOS上几乎是相同的,区别在于不是Xming,我们应该得到XQuartz,并且ssh_config文件位于不同的位置,我的是/ private / etc / ssh。
– DestinyOne
17年9月22日在15:45
并且,ssh_config的最后一行将是:XAuthLocation / opt / X11 / bin / xauth
– DestinyOne
17/09/22在15:58
需要编辑:XauthLocaion-> XauthLocation(该编辑对于我来说太小了)。
–echristopherson
18年3月3日在4:05
除了安装xming,ssh,xauth和xorg(第1步)外,我唯一需要做的就是export DISPLAY = localhost:0
–名
18-3-8的3:35
#4 楼
如前所述,OS X Yosemite上的xauth
似乎已退回到旧版本,无法与XQuartz的$DISPLAY
设置一起使用:% xauth -V
1.0.9
% xauth generate $DISPLAY .
xauth: (argv):1: bad display name "/private/tmp/com.apple.launchd(...)/org.macosforge.xquartz:0" in "add" command
评论
我在OS X 10.11上测试了相同的行,但没有收到任何错误。仍然是相同版本的XQuartz。
–索林
16年1月1日在11:48
@guest您的xauth生成$ DISPLAY。该命令在Mac OS X High Sierra(10.13)上运行,并且解决了我的No xauth数据;使用伪造的身份验证数据进行X11转发。铅
–SebMa
18年8月10日在16:13
这不仅是特定于OS X的-运行xauth generate:0使警告在我的WSL / Debian客户端上消失了。
–sandyscott
20年5月11日20:56
#5 楼
目前,MacOS中存在一个错误。我也碰到过这一点。对我来说,修复程序涉及在我的.bash_profile中添加以下内容需要纠正。 :-)评论
我怀疑这是否可以解决GUI OS X应用程序(如SourceTree)中的错误。
–索林
16 Mar 1 '16 at 11:49
确认它确实可以在Sierra上运行以使用X运行emacs-因为Mac是服务器。在客户端位于远程计算机上的情况下,这应该可以广泛地工作
–马克·穆林(Mark Mullin)
16 Dec 18'在16:24
#6 楼
在我的macOS Sierra 10.12.6中,在〜/ .ssh / config中的
XAuthLocation / opt / local / bin / xauth
对我有用。与答案7的微小变化。
#7 楼
我将其添加为评论,但是我没有足够的代表。在sorin的解决方案中再增加一行对我来说是有效的。Host *
ForwardAgent yes
ForwardX11 yes
XAuthLocation /opt/X11/bin/xauth
您可以使用以下方法仔细检查
vim ~/.ssh/config
的位置:which xauth
评论
不知道这是否真的有效,因为每台远程计算机上的xauth位置会有所不同。您的电脑看起来像MacOS,但Linux在不同的位置。我几乎开始完全禁用ForwardX11,因为我几乎从不使用它。
–索林
19年2月23日在8:23
@sorin也许他更新了问题,因为他解释了如何在答案中找到正确的位置。顺便说一句:这对我有用!
–clearlight
19年11月28日在12:18
#8 楼
我刚刚从我的根文件夹中删除了〜/ .Xauthority(目标计算机),然后再次ssh -X 192.168.123.1,ik正常工作。评论
我可以确认这是Mac OS Sierra 10.12.4上的答案。删除SSH服务器上的〜/ .Xauthority可达到以下目的:〜$ mv〜/ .Xauthority〜/ .Xauthority.bak一旦我再次登录,一个新的魔术cookie会自动放回〜/ .Xauthority中。完全不需要Bash脚本。
–肯尼斯·飞马(Kenneth Pegasus)
17年5月31日在23:45
#9 楼
就我而言,这是.Xauthority包含不可转发的Magic Cookie的问题,http://askubuntu.com/questions/571116/上的Fabby建议在2014-11-14上添加
以添加此行在.bashrc或。配置文件
,以允许在调用su时在用户之间转发xauth密钥:
export $(dbus-launch)
我之前也添加过: />
以确保使用ssh -X̍@调用的远程程序都能找到它。
在我的情况下.Xauthority是与原始用户/home//.Xsu的符号链接。 。
export XAUTHORITY=~/.Xauthority
并具有正确的权利:
cd /home/<child_user>;ln -sf /home/<parent_user>/.Xauthority .xAuthority
,因此它可以被或访问。将能够在整个代理帐户上触发应用并在其本地屏幕上显示X窗口结果!
提示:检查xauth列表...是否在上反映魔术cookie。
#10 楼
我的目标是从macOS客户端获得基于ssh的安静命令行登录t Linux主机。例如。我不想看到任何横幅或消息。只需设置基于证书的登录名即可,这样我就可以在上输入一个别名,并在主机上得到提示。为此,我执行了以下操作:在Debian 10 Linux主机上,我触摸(例如创建)
~/.hushlogin
但是,在macOS Catalina ssh客户端我收到消息:
没有xauth数据;在X11转发中使用伪造的身份验证数据。 br />
ssh -Y user@debian10
归根结底,@ ssanch的回答对我有用。但是,在我发现该解决方案之前,我偶然发现了一种可能对某些人有用的解决方法:到syslog而不是stderr,这也允许所需的安静登录。
#11 楼
在将Cygwin安装从一台PC转移到另一台PC后,这开始发生在我身上。问题似乎是主机名更改:魔术cookie不再与新PC的主机名相对应。运行
本地Cygwin安装为我解决了问题-
xauth list
现在列出了与新PC的正确主机名关联的魔术cookie,并且警告不再出现。评论
这是唯一为我工作的人!我只是想补充一下,该命令最初对我而言无效,我得到了... /。Xauthority不存在错误。要修复它,我只需要在主文件夹中使用touch .Xauthority创建一个空文件,然后再次重新运行上述xauth命令。
– Troropio
20 Mar 26 '20在9:58
我确实有一个现有的〜/ .Xauthority文件,试图寻找解决方案,感谢您让我知道它是必不可少的!
– Irfy
20-4-11的20:27
评论
您正在使用什么命令来ssh?@DerfK只是ssh主机名,但是在我的〜/ .ssh / config中,我是在前一段时间添加ForwardX11的。仍然是我确实想要的东西。
我放弃使用Ubuntu 16.04 LTS(2017年8月)。底线是,即使它给出了错误,它仍然可以工作。我在Linux上使用ssh -Y主机名,在Windows上使用OpenSSH时使用ssh -x主机名。