昨天我摆弄了 Xauth,因为在我的 Steam 客户端日志中有一些关于无法使用 X 进行身份验证的错误:
Could not connect to X session manager: Authentication Rejected, reason : None of the authentication protocols specified are supported and <garbage>
我无法解决这个问题,但我设法破坏了我的登录过程。\o/
当我输入密码时,它会尝试切换到我的用户会话,然后返回到登录屏幕。
我发现了一个解决方法,即切换到终端并执行以下操作:
> DISPLAY=:0; export DISPLAY
> xauth list
> xauth add $DISPLAY . <hexkey from xauth list>
当我切换回 GUI 并登录时,它就可以正常工作了。
值得注意的是,当我执行终端操作时 DISPLAY 没有设置,我认为这就是问题所在。我不记得是否更改了任何内容来删除 DISPLAY 环境,我认为它应该由 X 设置,但现在不再是这样了。我不确定我是否需要这样做,xauth add ...
或者仅设置 DISPLAY 环境是否已经足够 - 必须尝试一下。
在我做任何事情之前的输出xauth list
是这样的:
myhost/unix:0 MIT-MAGIC-COOKIE 2b3996b81997d587e6f7f4348a11df3d
我登录后,它看起来像这样:
myhost/unix:0 MIT-MAGIC-COOKIE-1 c71526c38a544cb15dc15875a4992486
myhost/unix:0 MIT-MAGIC-COOKIE 2b3996b81997d587e6f7f4348a11df3d
我使用 Xfce 作为桌面并使用 lightdm 作为登录管理器,我的系统是 Xubuntu 19.10。
知道如何修复这个问题吗?:| 非常感谢!
编辑:
根据我的 bash_history,这些是我执行过的命令:
ls ~/.Xauthority -la
xauth list
echo $DISPLAY
xauth list
xauth add $DISPLAY - `mcookie`
xauth list
mcookie
xauth --help
xauth remove $DISPLAY - `mcookie`
xauth list
xauth add $DISPLAY "MIT-MAGIC-COOKIE" `mcookie`
xauth list
xauth list|grep `uname -n`
xauth extract - $ DISPLAY | sudo -iu steam xauth merge -
.Xauthority
属于我的用户和组,并且具有权限 0600。所有命令均以我的用户身份执行,而不是 root 用户。我思考因为我添加了 MIT-MAGIC-COOKIE-1,所以它与我的解决方法兼容?
答案1
根据steeldriver的建议,解决方案是删除混乱的~/.Xauthority
文件。删除后重启,一切恢复正常。