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

wkd*_*rty 10 ssh logging x11-forwarding debug

我在通过 SSH 进行 X 转发时遇到问题。我已经战斗了很长时间,但似乎没有人能提供帮助。

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

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

进一步编辑:

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

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

如果xauth generate $DISPLAY我得到:

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

小智 14

我的解决方案一步一步:

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

$ ssh -X root@192.168.1.39

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

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

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

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

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 cookie

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

8) 添加

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

9) 测试

[oracle@localhost ~]$ xclock

希望他们服务!@wcaraza

  • 部分 xauth add .... 是诀窍 (2认同)

use*_*686 6

确保 SSH 服务器xauth安装了该工具,并且您的~/.Xauthority文件是可写的。(不存在也可以,只要xauth能创造就行。)

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

server$ xauth list
Run Code Online (Sandbox Code Playgroud)

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

server$ xauth add localhost:123 MIT-MAGIC-COOKIE-1 d7e2e4a8c5aa4430bfcc2abb436940d2
Run Code Online (Sandbox Code Playgroud)

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

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

server$ sshd -rddp 12234
Run Code Online (Sandbox Code Playgroud)

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

  • “我的 DISPLAY 变量状态 N40L:11.0 ......所以我会改变它”。坦率地说,别管 DISPLAY。如果 ssh 设置 X11 转发,它会将 DISPLAY 设置为有效的值。覆盖 ssh 设置的值只会使故障排除过程更加困难。 (2认同)

wkd*_*rty 3

它正在发挥作用,它正在发挥作用。哈哈。

最后。

在发现这不是系统之后,通过添加一个测试用户(其中​​ x 转发“开箱即用”),我想我应该开始复制 .bash* 启动文件以将“损坏的”用户处女化。

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

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