На заметку
Не все X-серверы сконфигурированы для работы с xauth. Соответствующая опция обычно устанавливается в том случае, когда X-сервер запускается посредством XDM, GDM или KDM. Если вы запускаете X-сервер с помощью startx, поддержка xauthв ряде систем будет отсутствовать. В некоторых случаях вам придется отредактировать сценарий startx(он обычно располагается в каталоге /usr/X11R6/bin) так, чтобы в нем присутствовала опция -auth файл_авторизации ; в качестве файла авторизации обычно указывается файл .Xauthority, находящийся в рабочем каталоге. Часто в редактировании startxнет необходимости.
Настройка X-клиента для работы с Х-сервером
Независимо от того, используете ли вы xhostили xauth, вы должны сконфигурировать клиентскую систему для работы с нужным X-сервером. Если, например, вы работаете за компьютером term.threeroomco.com, зарегистрировались на узле biggie.threeroomco.comи хотите, чтобы программа использовала компьютер wrongone.threeroomco.comв качестве X-терминала, вам не удастся сделать это. По умолчанию многие версии Linux сконфигурированы так, что даже если пользователь зарегистрировался с внешнего узла, они будут работать с локальным X-сервером.
При запуске X-программа читает значение переменной окружения DISPLAYи определяет, какой X-сервер следует использовать. Чтобы определить текущее значение этой переменной, надо на компьютере, выполняющем роль X-клиента, вызвать следующую команду:
$ echo $DISPLAY
biggie.threeroomco.com:0.0
Если отображаемая с помощью этой команды строка (в данном случае biggie.threeroomco.com:0.0) соответствует вашему серверу, вам не надо предпринимать никаких действий. (Первый дисплей обычно имеет номер 0 или 0.0; эти два значения эквивалентны.) Если же значение переменной DISPLAYуказывает на X-клиент или другую систему либо если оно вовсе не определено, вам надо задать новое значение данной переменной. Необходимая для этого команда выглядит следующим образом:
$ export DISPLAY=term.threeroomco.com:0
Очевидно, что имя узла должно определять ваш X-сервер. При последующих запусках X-программа будет пытаться взаимодействовать с указанным сервером. Чтобы эти попытки были успешными, вам надо настроить X-сервер для работы с X-клиентом, т.е. запустить программу xhost, или создать запись xauthдля клиента.
Туннелирование X-соединений через SSH
Из материала, рассмотренного ранее в данной главе, следует, что для инициализации Х-соединения используются два отдельных, независимых друг от друга протокола. Во-первых, работая на компьютере, выполняющем роль X-сервера, вы используете клиент-программу удаленной регистрации, работающую в текстовом режиме, например программу telnet. Во-вторых, после установления соединения вы инициируете взаимодействие X-клиента с X-сервером. Выполнив основные действия по установке соединений, вы можете вызвать на своем компьютере любую команду, например xclock, и соответствующая программа (в данном случае xclock) будет выполняться на удаленном компьютере. Данная конфигурация подходит для решения многих задач, но при ее использовании могут возникать проблемы. Одна из этих проблем связана с тем, что в сеансе X-взаимодействия данные передаются в незакодированном виде и могут быть перехвачены. Тот факт, что на каждом из взаимодействующих компьютеров должен выполняться сервер, также можно считать недостатком. Если эти компьютеры разделены брандмауэром или маршрутизатором, осуществляющим маскировку пакетов, эти программы должны быть сконфигурированы специальным образом, иначе обмен по протоколу X Window станет невозможным. Одно из возможных решений обеих проблем состоит в использовании протокола SSH. Этот протокол может применяться как для установления начального соединения между X-клиентом и X-сервером, так и для туннелирования данных, передаваемых в рамках этого соединения.
Основные вопросы, связанные с настройкой и использованием SSH, рассматривались в главе 13. Для того чтобы туннелирование протокола X Window посредством SSH стало возможным, надо соответствующим образом сконфигурировать средства поддержки SSH.
• В конфигурационном файле /etc/ssh/ssh_configклиентской программы SSH (эта программа выполняется на том компьютере, на котором расположен X-сервер) следует задать значение yesопции ForwardX11. Аналогичный результат можно получить, указав при запуске sshопцию -X. (Обратите внимание на регистр символа; если в опции -хвы зададите символ нижнего регистра, туннелирование будет запрещено.)
Читать дальше