Выравнивание .Xauthority между GDM и SSH - PullRequest
0 голосов
/ 27 декабря 2018

Я столкнулся с проблемой, заключающейся в том, что если я запускаю Emacs в режиме демона на моей удаленной системе, то в моей локальной системе я запускаю ssh remotehost emacsclient -c, он завершается с ошибкой X11-соединение отклонено из-за неправильной аутентификации. Однако такие вещи, как ssh remotehost xterm, работают нормально, поэтому это не имеет ничего общего с ssh-соединениями, переадресацией X и т. Д.

Обе рассматриваемые системы работают под управлением Ubuntu 18.04 LTS.

ПроблемаКак можно догадаться, это xauth и, в частности, после большого прочтения проблем, поданных еще в 2010/2011 гг., похоже, это связано с тем, что GDM устанавливает переменную окружения XAUTHORITY на $XDG_RUNTIME_DIR/gdm/Xauthority (что-то вроде /run/user/1000/gdm/Xauthority)в то время как для входящих SSH-соединений не устанавливается XAUTHORITY перед настройкой файлов cookie xauth для сеанса SSH.

Это означает, что файлы cookie ssh xauth добавляются в файл $HOME/.Xauthority по умолчанию.Мой демон Emacs не может видеть эти куки, потому что он использует файл GDM $XDG_RUNTIME_DIR/gdm/Xauthority.

Как я уже сказал, кажется, что это несоответствие было известной проблемой в течение 8+ лет ... никто не решил ее?Псих.Я написал скрипт, который устанавливает cookie, но это довольно сложно.

Есть ли способ заставить мою сессию ssh использовать файл GDM Xauthority?Я попытался установить XAUTHORITY в моей настройке оболочки, но, видимо, он установлен слишком поздно, после того, как демон SSH настроит новый файл cookie Xauth, потому что он все еще помещен в $HOME/.Xauthority.

...