1. На компьютере, на котором выполняется сервер X Window, введите команду xauth. При этом утилита xauthбудет запущена от имени пользователя, который применит систему для взаимодействия с удаленным узлом. Несмотря на то что xauthформально является X-утилитой, она выполняется в текстовом режиме.
2. Введите команду list. При ее выполнении будет выведена информация о ключах, содержащихся в файле .Xauthority. Каждый ключ начинается с имени дисплея, которое представляет собой имя узла, а за ним следует номер дисплея, например term.threeroomco.com:0. Имена некоторых компьютеров сопровождаются символами /unix, кроме того, по команде listбудут также выведены записи для localhost. Оба типа записей можно не принимать во внимание. В некоторых записях номера дисплеев будут отличаться от 0. Эти записи соответствуют второму, третьему и последующим сеансам работы с X-сервером, которые поддерживаются одновременно с первым сеансом. Вас интересует имя основного дисплея? Вероятнее всего, оно будет состоять из имени вашего компьютера, за которым следует номер 0. После имени дисплея в строке будут отображаться также тип кодировки (например, MIT-MAGIC-COOKIE-1) и 32-байтовое шестнадцатеричное число. Несмотря на то что эти данные предназначены для передачи, их можно не учитывать.
3. Введите команду extract имя_файла имя_дисплея . Здесь имя файла может быть любым, а имя дисплея — это имя, которое вы выяснили на предыдущем шаге процедуры. Например, вы можете задать команду extract xfer-auth term.threeroomco.com:0. В результате запись файла .Xauthorityдля дисплея будет скопирована в указанный файл. Файл используется для передачи ключа на клиентский компьютер.
4. Введите команду exit, чтобы завершить работу с программой xauth.
5. Скопируйте файл, созданный при выполнении команды extract, да клиентский компьютер (удаленный компьютер, на котором расположена программа, предназначенная для выполнения). Сделать это можно различными способами: использовать средства FTP или NFS, перенести файл на дискете и т.д.
6. Зарегистрируйтесь на компьютере, выполняющем функции X-клиента.
7. Задайте команду xauth, чтобы запустить утилиту xauthна клиентской машине.
8. Введите команду merge имя_файла . В этой команде должно быть указано имя файла, которое вы сгенерировали посредством команды extractи скопировали на клиентский компьютер. (Возможно, вам придется указать путь к файлу.)
9. Задайте команду list. Данная команда, помимо прочих сведений, должна отобразить запись для X-сервера, которую вы только что включили. Если такая запись отсутствует, это значит, что какие-то из предшествующих действий были выполнены неправильно.
10. Введите команду exit, чтобы завершить работу xauthи сохранить внесенные изменения. (Заметьте, что в xauthтакже предусмотрена команда quit, которая не сохраняет изменения. Команду quitнадо использовать в том случае, если при выполнении данной процедуры были допущены ошибки.)
Если на обоих компьютерах инсталлированы средства SSH, вы можете вместо описанной выше процедуры выполнить единственную команду.
# xauth list x_сервер :0 | sed -e 's/^ /add /' | ssh \
x_клиент -х xauth
В данном случае xauthвызывается в командной строке, sedиспользуется для включения команды addв начало выходных данных, кроме того, утилита xauthзапускается также на стороне X-клиента. При вызове данной команды необходимо учитывать следующее.
• Вместо x_сервер надо указать имя компьютера, за которым вы работаете, а вместо x_клиент — имя компьютера, на котором должна выполняться клиент-программа.
• Между addи последующей косой чертой ( /) должен быть пробел. Эта команда передается утилите xauthна клиентском компьютере, и пробел должен отделять addот имени дисплея.
• Если конфигурация SSH предполагает ввод пароля либо фразы пароля, вам придется ввести соответствующие данные.
С этого момента X-сервер будет принимать обращения от X-клиентов, но, чтобы эти программы могли работать совместно, вам придется установить на клиентском компьютере опцию, позволяющую взаимодействовать с X-сервером (этот вопрос будет подробнее рассмотрен в следующем разделе). При установлении соединения клиент X Window обратится к файлу .Xauthority за ключом, соответствующим серверу.
Поскольку работа xauthоснована на применении ключа, который известен только серверу и авторизованному клиенту, она обеспечивает более высокий уровень защиты, чем xhost. Кроме того, при использовании xauthдоступ к серверу предоставляется только отдельным пользователям. X-сервер становится более устойчивым к атакам, осуществляемым путем подмены IP-адреса. Недостатком данного способа является передача ключей в незакодированном виде. Если локальная сеть не обеспечивает безопасность передаваемых данных либо если клиент с сервером взаимодействуют по Internet, ключ может быть похищен и злоумышленник получит доступ к X-серверу. Если при обмене данными в системе X Window необходимо обеспечить высокий уровень защиты, надо использовать SSH-соединение. Вопросы поддержки X-взаимодействия посредством SSH будут подробно рассмотрены в следующем разделе.
Читать дальше