在GDM和SSH之间对齐.Xauthority

时间:2018-12-27 13:33:23

标签: ssh x11-forwarding gdm

我遇到了一个问题,如果我在远程系统上以守护程序模式启动Emacs,则在我的本地系统中运行ssh remotehost emacsclient -c,它会失败,并且由于错误的身份验证而拒绝了 X11连接。但是,ssh remotehost xterm之类的东西可以正常工作,因此与ssh连接,X转发等无关。

有问题的两个系统都在运行Ubuntu 18.04 LTS。

可以猜测到的问题是xauth,尤其是在大量阅读了2010/2011年提交的问题之后,这似乎是由于GDM将XAUTHORITY环境变量设置为{{1 }}(类似$XDG_RUNTIME_DIR/gdm/Xauthority之类的东西),而传入的SSH连接在设置SSH会话的xauth cookie之前设置/run/user/1000/gdm/Xauthority

这意味着ssh xauth cookie被添加到默认的XAUTHORITY文件中。我的Emacs守护程序正在使用GDM $HOME/.Xauthority文件,因此看不到这些Cookie。

就像我说过的那样,这种差异似乎已经存在了8年以上了……没有人解决吗?疯。我已经编写了一个脚本来安装cookie,但是必须这样做很麻烦。

有没有办法让我的ssh会话使用GDM Xauthority文件?我曾尝试在shell设置中设置$XDG_RUNTIME_DIR/gdm/Xauthority,但显然在SSH守护进程配置了新的Xauth cookie之后,设置太晚了,因为它仍放在XAUTHORITY中。

0 个答案:

没有答案