我有一个烦人的问题。
当我通过 SSH 登录到特定主机时,会出现以下消息
X11 connection rejected because of wrong authentication.
大约每分钟发生一次,看似随机发生三次。我不知道它从哪里来。
事实上,X11转发甚至没有任何小问题,它就像一个魅力。但这条信息不断出现,让我抓狂。
有谁知道如何摆脱它?
无论我来自哪里,我都面临着这个问题,它发生在我的 Gnome 桌面上,也发生在使用 PuTTY、MobaXterm、Cygwin 等的 Windows 系统上。
经过更多的调整后,我发现原因是监控代理(check_mk)。这会检查正在运行的任务的一些运行时参数,每次从监控系统触发此代理时,即在检查 PostgreSQL 状态时,都会出现该消息。该进程似乎尝试打开 X11 连接但失败了。然后,当它尝试使用我转发的 X11 会话时,该消息会被吐出到我的终端会话中。
有没有办法完全禁用此消息?
答案1
我有有趣的版本,眼睛和x标志有效但是铬没有。
这是使用 snap 安装 chromium 的一个功能。
快速解决:
export XAUTHORITY=$HOME/.Xauthority
chromium
查看更多:
答案2
确保磁盘空间没有用完
运行 df 并确保有足够的磁盘空间,如果磁盘空间不足,请从系统中删除不必要的文件:
$ df -h
如果文件系统有配额,请检查您是否没有超出配额:
$ quota -s
确保 ~/.Xauthority 为您所拥有
运行以下命令来查找所有权:
$ ls -l ~/.Xauthority
运行 chown 和 chmod 修复权限问题 [将 user:group 替换为您的实际用户名和组名]:
$ chown user:group ~/.Xauthority
$ chmod 0600 ~/.Xauthority
确保 X11 SSHD 转发已启用
确保 sshd_config 文件中存在以下行:
$ grep X11Forwarding /etc/ssh/sshd_config
示例输出:
X11Forwarding yes
如果 X11 禁用,请将以下行添加到 sshd_cofing 并重新启动 ssh 服务器:
X11Forwarding yes
确保 X11 客户端转发已启用
确保您的本地 ssh_config 具有以下行:
Host remote-host.com
ForwardX11 yes
最后,登录远程服务器并从 Mac OS X 或 Linux 桌面系统运行 X11,如下所示:
ssh [email protected]
信息来源如下:http://www.cyberciti.biz/faq/x11-connection-rejected-because-of-wrong-authentication/
希望有帮助。
答案3
我遇到了同样的问题,这对我有用。 (笔记:这不是我的解决方案,但由于我努力找到它,所以我将其重新发布在这里。你可以找到原来的这里和这里)
1.登录远程服务器
echo $DISPLAY
这应该显示您当前的 X11 显示器
xauth list
如果控制台上没有打印任何内容,则意味着 ssh 没有在本地显示上正确自动生成 X11 授权 cookie
2.添加授权cookie
xauth add $DISPLAY - `mcookie`
这会将您显示器的授权 cookie 添加到 xauth
xauth list
检查您的显示器是否已添加
3. 将 cookie 与本地机器合并
xauth nextract ~/xcookie $DISPLAY
exit
在本地:scp user@remote:~/xcookie ~/xcookie
在本地:xauth nmerge ~/xcookie
最后再次登录远程服务器应该就解决了。
答案4
如果您有 SELINUX 强制,并且您的主目录不在 /home 目录下,那就是您的问题。目标 SELINUX 设置假定所有用户主目录都位于 /home 下,因此 xauth 无法正常工作,因为主目录上的 SELINUX 类型不正确。我希望我能推荐一种修复方法,但我发现的方法不起作用。我将 SELINUX 设置为 permissive 来解决这个问题。最好设置正确的标签,例如:
semanage fcontext -a -e /home <custom_path>
restorecon -R -v <custom_path>