С моей локальной машины я ssh
на удаленный сервер вместе с аутентификацией относительно отображения X. Я знаю, что в этом процессе MIT-MAGIC-COOKIES
используются и значение для сервера и клиента должно быть идентичным, чтобы процесс аутентификации был действительным.
Тем не менее, когда я вхожу на удаленный сервер и подтверждаю, что X-дисплей работает хорошо (например, выполняется, xclock
чтобы увидеть, было ли xclock
запущено приложение на моем локальном компьютере), когда я проверяю значение файлов cookie, значение на локальном компьютере и что в удаленном сервере, кажется, по-другому. Вот командные строки:
значение cookie на удаленном сервере
chulhyun@chulhyun-Inspiron-3420:~$ ssh -X Black@$labcom
Last login: Wed Jun 25 10:02:25 2014 from
Black@Black-PC ~
$ xclock ### xclock appears in local machine.
Black@Black-PC ~
$ xauth list
Black-PC/unix:10 MIT-MAGIC-COOKIE-1 708f623489b1ea129a77e98287d130ca
значение cookie на локальном компьютере
chulhyun@chulhyun-Inspiron-3420:~$ xauth list
chulhyun-Inspiron-3420/unix:0 MIT-MAGIC-COOKIE-1 5ddd2ce92004eab53ceee8a64b7b88c0
Как видите, значения cookie на двух машинах различны. Тогда не должен ли работать дисплей X?
Что мне здесь не хватает?
PS Я слышал, что $XAUTHORITY
содержит путь к xauthority
файлу, и я проверил этот путь на локальной машине:
chulhyun@chulhyun-Inspiron-3420:~$ echo $XAUTHORITY
/var/run/gdm/auth-for-chulhyun-iZfH2u/database
Когда я заглядываю в файл «database», содержимое не читается, потому что содержимое состоит из странных символов.
^A^@^@^Vchulhyun-Inspiron-3420^@^A0^@^RMIT-MAGIC-COOKIE-1^@^P]?,? ^D??<??? K{??
это может быть связано с вопросом?
Обновить
результат xhost
и $XAUTHORITY
в удаленном сервере
Black@Black-PC ~
$ xhost
access control enabled, only authorized clients can connect
SI:localuser:chulhyun
Black@Black-PC ~
$ echo $XAUTHORITY
* как оказалось $XAUTHORITY
не определено ... это нормально?
результат xhost
в локальной машине
chulhyun@chulhyun-Inspiron-3420:~$ xhost
access control enabled, only authorized clients can connect
SI:localuser:chulhyun
источник
$XAUTHORITY
? Каков выходxhost
на обоих серверах?xhost -SI:localuser:chulhyun
localuser:chulhyun being removed from access control list
но все равно X display с удаленным сервером работает .. что в любом случае должна означать командная строка?Ответы:
Я полагаю, что вас смущает то, как SSH выполняет проксирование соединения X11 через туннель, установленный на стороне удаленного сервера, с тем, как обычно работают волшебные куки. Со страницы руководства SSH:
выдержкаТаким образом, может показаться, что волшебные куки, показываемые вам на стороне удаленного сервера, на самом деле не являются настоящими волшебными куки на локальном сервере (ваша цель). Помните, что DISPLAY настраивается примерно так, когда вы подключаетесь по SSH к удаленному серверу:
И волшебное печенье связано с этим
$DISPLAY
:Скажем так
/unix:11
. Это волшебное печенье для локальной стороны SSH-соединения, а не X11 вашего локального сервера, как это обычно бывает:0
..Xauthority
Это правда, что этот файл содержит эти волшебные куки, но это двоичный файл, и вы обычно взаимодействуете с ним с помощью
xauth
команды. Смотритеxauth
man-страницу для более подробной информации.Делать это вручную
Часто вы увидите это сообщение, если вы сделаете следующее:
Это связано с тем, что второй пользователь
.Xauthority
ничего не знает о волшебном cookie- файле, который был передан SSH при первом входе в систему. Вы можете сгенерироватьxauth add
требуемое, пока вы user1, и использовать его как user2 следующим образом:Обратите внимание, что вы на дисплее #
:10.0
. Теперь сгенерируйтеxauth add
необходимые для этого отображения #:Теперь станьте user2 и добавьте его:
И мы получаем показания часов, как и ожидалось.
ПРИМЕЧАНИЕ: вы также можете делать что-то в одной командной строке, когда вы поняли, что происходит с вышеупомянутым.
используя су использовать sudoРекомендации
источник