最近,我在使用 X11 时遇到了一些问题 - 我花了几个小时在 Google 上搜索并尝试了各种修复方法,但都无济于事。具体情况如下:
- 我正尝试通过本地网络从我的笔记本电脑登录部门计算机
ssh -X
。X11 运行了相当长一段时间,然后突然我开始收到错误消息:X11 connection rejected because of wrong authentication
- 我尝试了大约 6 种不同的方法来解决这个问题。我以为我上周通过修改 的本地副本已经让它正常工作了
/etc/ssh/ssh_config
,具体来说,我取消了 行的注释ForwardX11Trusted yes
。这显然是个侥幸,因为现在它又不能正常工作了 - 我也尝试过使用 xauth add 将我的 MIT-MAGIC-COOKIE 添加到远程机器,但这似乎不起作用。
- 尝试了一切这里,特别是我有权限
.Xauthority
并且我的磁盘还远远没有满(本地和远程)。
以下是我的各种环境变量等的输出:
$ echo $DISPLAY # local machine
:0.0
$ echo $DISPLAY # remote machine
localhost:10.0
$ xauth list # local
laptop/unix:0 MIT-MAGIC-COOKIE-1 45f1f58762e8040da75508d23df6819e
$ xauth list # remote
# blank
我认为最后一个是关键,但在远程机器上反复尝试 xauth add 似乎并没有改变这一点。
有什么想法吗?如果我可以提供更多输出,请告诉我。谢谢!
答案1
您可能由于以下几个问题而收到此错误:
1 - 磁盘空间不足。使用以下工具检查服务器上的可用空间:df
df -H
如果磁盘空间不足,请从系统中删除不必要的文件。
2 -~/.Xauthority
需要适当的所有权和权限
ls -l ~/.Xauthority
您可以根据需要设置适当的权限(如果文件由 root 拥有,则可能需要 sudo)。
chown you_user:your_group ~/.Xauthority
chmod 0600 ~/.Xauthority
3 - 确保已启用 X 转发。您需要一个大写的 X 和ssh -X
。此外,在服务器上
grep X11Forwarding /etc/ssh/sshd_config
应该显示
X11转发 是
4 - 确保已启用 X11 客户端转发
在您的客户端上,/etc/ssh/ssh_config 应该包含以下行:
主持人 * ForwardX11 是
然后
ssh -X user@server
应该管用。
答案2
这最终成为了奥卡姆剃刀:最简单的解释曾是真的:
$ df -H
Filesystem Size Used Avail Use% Mounted on
grad2:/u6/#username 247G 113G 121G 49% /u6/#username
看起来我有很多空间,对吧?好吧,事实证明我在该磁盘上确实有配额,但结果已满:
$ quota
Disk quotas for user #username (uid #####):
Filesystem blocks quota limit grace files quota limit grace
grad2:/u6/#username
1698264 1700000 1700000 12742 0 0
清除了一些文件,让管理员增加配额,然后中提琴: X11 又能用了。为什么它不能有一个有用错误消息如“无法启动 X11,因为您的配额/磁盘已满”?我可能在这上面浪费了 5 个小时。