Answers:
仅使用SSH选项,就可以通过3种方法之一消除这些消息。您始终也可以向其中发送消息,/dev/null
但是这些方法尝试通过配置处理消息,而不仅仅是捕获和转储它们。
您要远程处理的服务器抱怨说.Xauthority
,由于xauth
未安装,因此无法在用户文件中创建条目。因此,您可以将其安装在每台服务器上,以消除此烦人的消息。
在Fedora 19上,您可以这样安装xauth
:
$ sudo yum install xorg-x11-xauth
如果您随后尝试ssh
进入服务器,则会看到一条消息,提示正在用户.Xauthority
文件中创建一个条目。
$ ssh root@server
/usr/bin/xauth: creating new authority file /root/.Xauthority
$
后续登录将不再显示此消息。
您可以ssh
通过包含SSH参数ForwardX11 来指示客户端不要尝试启用X11转发。
$ ssh -o ForwardX11=no root@server
您可以使用-x
开关执行相同的操作:
$ ssh -x root@server
这只会暂时禁用此消息,但是如果您不能或不愿意xauth
在远程服务器上安装,这是一个不错的选择。
通常,这是默认设置,但如果不是默认设置,则可以设置sshd
服务器,以便在中关闭X11Forwarding /etc/ssh/sshd_config
。
X11Forwarding no
在通常使用#2的3种方法中,因为我经常需要X11Forwarding
对大多数服务器进行操作,但又不想看到X11....
警告
这些消息在很多时候甚至都不会显示。通常仅在$HOME/.ssh/config
文件顶部具有以下条目时才显示它们。
ServerAliveInterval 15
ForwardX11 yes
ForwardAgent yes
ForwardX11Trusted yes
GatewayPorts yes
因此,正是这种设置最终推动了这些X11..
消息的生成,因此,如果您想ForwardX11 yes
默认使用on 进行操作,则方法2似乎是最合适的,但是从ssh
客户端的角度来看,对于某些连接,则有选择地禁用它。
通常不建议一直使用ForwardX11 yes
它。因此,如果您想以最安全的方式操作SSH连接,则最好执行以下操作:
ForwardX11 yes
在您的$HOME/.ssh/config
文件中ssh -X user@server
X11Forwarding
在服务器上完全禁用,以免被禁用以我为例,添加此字符串即可/etc/ssh/sshd_config
解决问题:
X11UseLocalhost no
locahost
X11转发。其他两个上的X11转发仍然有效。知道会发生什么变化吗?
今天跑过去,打我的头一段时间,直到偶然发现ssh设置:
如果是RHEL 7(centOS,OEL等),并且已禁用ipv6,则需要:
AddressFamily inet
在/ etc / ssh / sshd_config中设置。
如果以详细模式运行客户端(ssh -v user@host
),则可以
debug1: Remote: No xauth program; cannot forward with spoofing.
但是xauth
确实安装在服务器上,则可能是因为sshd在错误的位置(通常是/ usr / X11R6 / bin / xauth)寻找xauth可执行文件。可以通过设置解决
XAuthLocation /usr/bin/xauth
在/ etc / sshd / sshd_config(或配置了服务器的任何文件)中。
除了此处已提供的所有出色答案之外,您还可以ForwardX11
基于每个主机进行配置,因此,如果仅server
失败,则可以~/.ssh/config
按以下形式向文件添加条目:
Host server server.domain.dom
ForwardX11 no
您甚至可以将这样的条目用作整个配置集的联盟
Host my.server
HostName server.domain.dom
User user
Port 1234
ForwardX11 no
如果您已经为SSH和SCP设置了自动完成服务器名称,这将特别有用。
我遇到了sshd-xauth
将近十年的错误,然后遇到了这个问题。报告了两种解决方案,第一种绕过xauth
,第二种解决该错误。
解决方案1-绕过xauth
远端/etc/ssh/sshd_config
:
X11Forwarding no
X11DisplayOffset 10
X11UseLocalhost yes
遥控器~/.Xauthority
为空或不存在
在本地:
Xephyr -ac -screen 1280x800 -br -reset :2 &
DISPLAY=:2 ssh -fR 6010:/tmp/.X11-unix/X2 user@remote "DISPLAY=:10 xeyes"
在测试中,本地运行Ubuntu 18.05,远程运行Debian Jesse。
我还发布了此解决方案,以回答另一个问题。
解决方案2-解决sshd / xauth错误
该解决方案与上述 @systempoet的解决方案非常接近,尽管仅此还不够。
除了/etc/ssh/sshd_config
在远程上进行修改之外:
AddressFamily inet
/etc/hosts
在远程也被修改:
::1 localhost ip6-localhost ip6-loopback
如果其中一个被注释掉,则错误消息
X11 forwarding request failed on channel 0
ssh -X ...
通话后出现。另外/var/log/auth.log
显示了错误:
sshd[...]: error: Failed to allocate internet-domain X11 display socket
测试以产生错误(在修复之前):
本地机器:
$ Xephyr -ac -screen 1280x800 -br -reset -terminate :2 &
$ DISPLAY=:2 ssh -X user@remote
X11 forwarding request failed on channel 0