Как запускать графические приложения на удаленных компьютерах с X11 — LinuxSuxx.org — ...
: 2
Для запуска приложений есть два пути:
Путь первый, он же небезопасный, с использованием 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!
