如何调试“X11 连接由于身份验证错误而被拒绝”

如何调试“X11 连接由于身份验证错误而被拒绝”

我在通过 SSH 进行 X 转发时遇到问题。我已经努力了很久,但似乎没人能帮我。

我现在采取了不同的策略。我想知道如何调试错误?

我应该查看哪些日志,应该设置哪些额外的标志(-v 等)以及我应该寻找什么?

进一步编辑:

如果我使用 Putty 登录到服务器并尝试xeyes,我会得到:

PuTTY X11 代理:尝试了错误的授权协议错误:无法打开显示:localhost:10.0

如果我xauth generate $DISPLAY得到:

PuTTY X11 代理:错误的授权协议 attemptedxauth:(argv):1:无法打开显示“localhost:10.0”。

答案1

我的解决方案一步一步:

1)使用选项 -X 远程主机登录 root

$ ssh -X[电子邮件保护]

2)检查是否存在 .Xauthority 文件

[root@localhost ~]# ls -al
[root@localhost ~]# vim .Xauthority

3)将 .Xauthority 文件复制到其他用户的目录中

[root@localhost ~]# cp .Xauthority /home/oracle/
cp: 覆盖 `/home/oracle/.Xauthority'? y

4)设置此文件的权限

[root@localhost ~]# chown oracle:oinstall .Xauthority
[root@localhost ~]# chmod 0600 .Xauthority

5)登录oracle用户

[root@localhost ~]# su - oracle

6)localhost:10.0中的显示设置

[oracle@localhost ~]$ echo $DISPLAY
本地主机:10.0
[oracle@localhost ~]$ ls -al

7)列出现有的xauth cookies

[oracle@localhost ~]$ xauth 列表
本地主机.本地域/unix:11 MIT-MAGIC-COOKIE-1 310f1b02c1080e73059391c193a1881b
本地主机.本地域/unix:10 MIT-MAGIC-COOKIE-1 41843db100830a2aa352641ac47bb759

8)添加

[oracle@localhost ~]$ xauth 添加 localhost.localdomain/unix:10 MIT-MAGIC-COOKIE-1 41843db100830a2aa352641ac47bb75

9)测试

[oracle@localhost ~]$ xclock

希望他们能服务!@wcaraza

答案2

确保 SSH 服务器已xauth安装该工具,并且您的~/.Xauthority文件可写。(不存在也没关系,只要xauth可以创建它即可。)

检查 xauth 数据是否正在更新:

server$ xauth list

尝试手动添加虚拟 xauth 数据(再次在 SSH 服务器上),看看是否xauth存在任何问题(例如无法创建锁文件或修改 Xauthority 文件本身):

server$ xauth add localhost:123 MIT-MAGIC-COOKIE-1 d7e2e4a8c5aa4430bfcc2abb436940d2

如果有必要,请在下重新运行strace

LogLevel DEBUG2通过在服务器配置中设置(/etc/ssh/sshd_config)或直接在调试模式下启动 sshd,以调试模式运行 SSH 服务:

server$ sshd -rddp 12234

(在此示例中,12234是您需要连接的临时 SSH 端口。任何空闲端口都可以。)

答案3

有效,有效。哈哈。

最后。

在发现问题不在于系统之后,通过添加测试用户(x 转发“开箱即用”),我认为我应该开始复制 .bash* 启动文件来对“损坏的”用户进行初始设置。

所有文件都没有什么不同,所以接下来我删除了用户的 .ssh 目录。当我 ssh 登录时,它抱怨“服务器拒绝我们的密钥”,但我可以使用密码登录。登录后,我可以完美地 x forward。

我现在将尝试再次设置密钥,看看是否也能让它工作。然后它就会恢复正常。

答案4

rm ~/.Xauth*然后重新连接。

这对我来说很管用。有关更多信息细节

相关内容