由于身份验证错误,X11连接被拒绝

Nat*_*raj 3 x11 x11-forwarding

我在使用X11Forwarding访问firefox时遇到错误.

[root@station2 ~]# firefox
KiTTY X11 proxy: wrong authorisation protocol attemptedKiTTY X11 proxy: wrong authorisation protocol attemptedError: cannot open display: localhost:10.0
Run Code Online (Sandbox Code Playgroud)

设置以下值:/ etc/ssh/sshd_config

X11Forwarding yes
X11DisplayOffset 10
X11UseLocalhost yes
Run Code Online (Sandbox Code Playgroud)

**安装包**

#yum install xorg-x11-xauth
#yum -y install xauth

[root@station2 .ssh]# echo $DISPLAY
localhost:10.0

#mkxauth -c
adding key for station2.example.com to /root/.Xauthority ... done
Run Code Online (Sandbox Code Playgroud)

小智 43

export XAUTHORITY=$HOME/.Xauthority
Run Code Online (Sandbox Code Playgroud)

这个修复对我有用

  • 您能否解释一下这是如何解决问题的? (2认同)

小智 7

找到(通过搜索引擎)场景可能会导致该错误消息,甚至是不可能的.

初步说明:这个答案的主题不是讨论在远程无显示的网络服务器上使用图形桌面作为root是安全风险还是可以重新安装.

场景:

  • 远程互联网连接的Linux服务器S已将域名example.com分配给其公共IP4地址192.0.2.1.
  • S上的/ etc/hostname文件包含单行example.
  • S上的/ etc/hosts文件包含该行127.0.0.1 localhost example.com example.
  • 对S的(远程)ssh访问是通过(sshd-)配置(在S上)由DenyUsers root/ etc/ssh/sshd_config中的行禁止root ,但允许为虚拟用户user1.从客户端计算机℃的SSH连接,使用ssh参数-X-Y,建立到S作为用户user1.

然后,在user1拥有的S上的远程终端中,如果尝试以root身份执行任何X11相关命令,则可以通过

su,然后尝试启动X11桌面环境

或者,如在执行包含的脚本的具体情况中那样

#!/bin/bash
su --preserve-environment -c "xfce4-session &" root
Run Code Online (Sandbox Code Playgroud)

错误消息

由于身份验证错误,X11连接被拒绝.

输出并且任何X11相关程序的启动失败.root环境的DISPLAY变量包含

example.com:10.0

然后.

在这种特殊情况下,问题的一个解决方案是修改线路

127.0.0.1 localhost example.com example
Run Code Online (Sandbox Code Playgroud)

在/ etc/hosts中

127.0.0.1 localhost
Run Code Online (Sandbox Code Playgroud)


小智 3

解决方案:使用与 SSH 连接相同的用户运行应用程序。

我在使用X11的时候也遇到过这样的错误。

我的问题的根源是我使用 SSH 和我自己的用户名(不是 root)。

然后,一旦登录,我厌倦了在执行“su”或执行“sudo”时使用 X11 运行东西,问题是 SSH 会话是使用您自己的用户名配置的 - 例如:Raj,但随后您切换到用户 root不是 X11 会话的一部分。

因此,您应该做的就是尝试使用启动 X11 会话的同一用户来运行应用程序(在您的情况下为 Firefox)。

希望这可以帮助。

塔雷尔。