GrabDuck

Как запускать графические приложения на удаленных компьютерах с X11 — LinuxSuxx.org — ...

:

Для запуска приложений есть два пути:

Путь первый, он же небезопасный, с использованием TCP сокетов.

Путь второй, с SSH и шифрованием трафика.

Перед тем, как совершать какие-либо телодвижения, убедитесь, что при логине на удаленную систему никакие графические приложения не запускаются. Например, попробуйте запустить xmessage privet

Если оно дает вам ошибку Error: Can't open display:, то последуйте одному из этих двух советов:

1. Использование TCP сокетов

Использование tcp сокетов не рекомендуется в открытых сетях, т.к. не происходит никакого шифрования трафика. К тому же, во многих дистрибутивах данная опция выключена. Сделано это именно из-за соображений безопасности. Поэтому для использования этой опции необходимо включить данную поддержку в вашем X сервере. Откройте файл /etc/X11/xinit/xserverrc, найдите строчку exec /usr/bin/X11/X и удалите опцию -nolisten tcp. Запишите файл и перестартуйте X сервер.

Откройте xterm или любой его эквивалент и запустите команду xhost с параметром +адрес_удаленной_машины. Например, xhost +192.168.25.55

Это означает, что мы разрешаем соединения с данной машины к нашему X серверу.

Теперь залогинтесь на эту машину и настройте переменную окружения DISPLAY. Например, это можно сделать командой export DISPLAY=192.168.25.88:0.0, где 192.168.25.88 — адрес вашей машины, на котором запущен X.

После этого снова попробуйте запустить на удаленной машине xmessage privet и убедиться, что все работает. Если все назначено правильно, но соединения все равно нет, убедитесь, что соединения на порты tcp 6000-6010 на вашем компьютере с X разрешены.

2. Использование SSH

С использованием SSH предстоит немного больше мороки, но в качестве компенсации за труды вы получите более безопасное соединение и шифрование X11 трафика между машинами.

Для начала нужно включить X11 Forwarding в настройках sshd на удаленной машине: отредактируйте /etc/ssh/sshd_config так, чтобы опция X11 Forwarding была установлена в yes. Перегрузите ssh демон (/etc/init.d/ssh reload).

Теперь на клиентской машине при установке соединения нужно включить ssh forwarding. Наименее мучительный способ — создать конфигурационный файл ~/.ssh/config

Например, он может содержать такую информацию:

Host testserver

ForwardX11 yes

ForwardX11Trusted yes

HostName 192.168.25.55

Теперь просто наберите команду ssh testserver, введите пароль (если вы до сих пор не сделали аутентификацию по ключам), и попробуйте набрать команду xmessage privet. Voi la, у вас есть работающий X11 удаленный дисплей.

В обоих перечисленных случаях при возникновении проблем убедитесь, что на удаленных компьютерах также установлен X11!