当我通过 ssh 进入未运行任何类型的 X11 桌面环境的远程服务器时,我收到以下消息。
$ ssh user@server
X11 forwarding request failed
$ ssh user@server ls
X11 forwarding request failed on channel 1
file1
file2
...
Run Code Online (Sandbox Code Playgroud)
我怎样才能摆脱这些消息?
slm*_*slm 45
这些消息可以通过 3 种方法中的一种消除,仅使用 SSH 选项。您也可以随时向其发送消息,/dev/null
但这些方法尝试通过配置来处理消息,而不仅仅是捕获和转储它们。
您远程访问的服务器抱怨它无法在用户.Xauthority
文件中创建条目,因为xauth
未安装。所以你可以在每台服务器上安装它来摆脱这个烦人的消息。
在 Fedora 19 上,您可以xauth
像这样安装:
$ sudo yum install xorg-x11-xauth
Run Code Online (Sandbox Code Playgroud)
如果您随后尝试ssh
进入服务器,您将看到一条消息,指出正在用户.Xauthority
文件中创建一个条目。
$ ssh root@server
/usr/bin/xauth: creating new authority file /root/.Xauthority
$
Run Code Online (Sandbox Code Playgroud)
后续登录将不再显示此消息。
您可以ssh
通过包含 SSH 参数 ForwardX11来指示客户端不要尝试启用 X11 转发。
$ ssh -o ForwardX11=no root@server
Run Code Online (Sandbox Code Playgroud)
你可以用-x
开关做同样的事情:
$ ssh -x root@server
Run Code Online (Sandbox Code Playgroud)
这只会暂时禁用此消息,但如果您无法或不愿意xauth
在远程服务器上安装,这是一个不错的选择。
这通常是默认设置,但如果不是,您可以设置您的sshd
服务器,以便 X11Forwarding 在/etc/ssh/sshd_config
.
X11Forwarding no
Run Code Online (Sandbox Code Playgroud)
在我通常使用的 3 种方法中 #2,因为我经常希望X11Forwarding
在我的大多数服务器上使用,但不想看到X11....
警告
大多数情况下,这些消息甚至不会出现。它们通常仅在您的$HOME/.ssh/config
文件中包含以下条目时才会出现,位于顶部。
ServerAliveInterval 15
ForwardX11 yes
ForwardAgent yes
ForwardX11Trusted yes
GatewayPorts yes
Run Code Online (Sandbox Code Playgroud)
所以这是这个设置,它最终驱动了这些X11..
消息的生成,所以同样,如果您想ForwardX11 yes
默认使用on操作,方法 #2 似乎是最合适的,但然后从ssh
客户端的角度有选择地为某些连接禁用它.
通常不建议一直运行ForwardX11 yes
。因此,如果您想以最安全的方式操作 SSH 连接,最好执行以下操作:
ForwardX11 yes
在您的$HOME/.ssh/config
文件中ssh -X user@server
X11Forwarding
在服务器上完全禁用,因此不允许使用Sys*_*oet 16
今天遇到了这个问题,让我震惊了一段时间,直到我偶然发现了一个 ssh 设置:
如果是 RHEL 7(centOS、OEL 等),并且禁用了 ipv6,则需要:
AddressFamily inet
Run Code Online (Sandbox Code Playgroud)
在 /etc/ssh/sshd_config.conf 中设置。
use*_*194 15
在我的情况下,添加此字符串来/etc/ssh/sshd_config
解决问题:
X11UseLocalhost no
Run Code Online (Sandbox Code Playgroud)