Блог ИТ склеротика. Запуск удалённых приложений, часть 2

Страницы

Расширенный поиск в статьях блога

28 февраля 2012 г.

Запуск удалённых приложений, часть 2


Удалённый рабочий стол при помощи Xnest/Xephyr

Использование опции -display позволяет организовать удалённый запуск отдельных приложений, а как быть, если вам нужен весь рабочий стол целиком? При помощи X-серверов Xnest или Xephyr можно запустить удалённую X-сессию через XDMCP. Эти серверы работают подобно обычным оконным приложениям, однако могут удалённо подключаться к GDM для организации X-сессии. Xnest и Xephyr не являются частьюGNOME и обычно не устанавливаются по умолчанию. Поискав в репозитариях пакетов вашей системы, вы можете найти и установить соответствующие пакеты. Их имена, например, в Fedora выглядят примерно так: xorg-x11-server-Xephyr и xorg-x11-server-Xnest.


После установки серверы могут быть вручную запущены для того, чтобы подключиться к удалённой системе:
Xnest :10 -query <host-with-gdm-configured> -geometry 1024x768
Xephyr -query <host-with-gdm-configured> -screen 1024x768 :1
Познакомившись с обеими реализациями можно сделать вывод, что Xephyr (изображён на скриншоте выше) более современен, активно разрабатывается и, как следствие, более стабилен. К сожалению, есть один неприятный момент в работе с ним: после того, как вы завершите работу в X-сессии, вы снова не сможете подключиться к удалённому GDM. Такое, вероятно, происходит потому, что GDM по умолчанию сконфигурирован так, чтобы разрешать не более одного подключения. Думаю, это можно решить, покопавшись в конфигурации GDM. В процессе экспериментов я не придумал ничего лучше, нежели перезапускать GDM на удалённой системе.
XDMCP через GDM работает наподобие трубопровода для удалённых приложений, которые отображают свои окна в локальной системе. Фактически, на удалённой системе вообще не нужно выполнять вход в систему. Главное, чтобы был запущен GDM. Поскольку создаётся новая X-сессия, вы можете использовать разрешение экрана отличное от используемого на удалённой системе. Например, если на удалённой системе невозможно получить разрешение экрана более, чем 800*600, то при наличии такой возможности в локальной системе, вы можете без проблем это сделать при использовании Xephyr и XDMCP через GDM. Также, вы без проблем можете использовать различные окружения рабочего стола (GNOMEKDE,Xfce и еже с ними) на удалённой системе и при подключении к ней через XDMCP.

XDMCP: «за» и «против»

«За»:
  • используются «родные» возможности X11;
  • легко конфигурируется через GDM;
  • без проблем работает через фаерволл;
  • раздельные X-сессии.
«Против»:
  • не поддержки звука/видео;
  • небезопасно, пароли передаются в открытом виде;
  • несовместим с не-Linux платформами.

Удалённый экран через SSH

Безусловно, наиболее простым методом удалённого отображения приложений является использование SSHSSH — отличное средство безопасного подключения к удалённым компьютерам. Вместе с Linux поставляется открытая реализация SSH, называемаяOpenSSH. Как в серверной, так и клиентской частях  OpenSSH присутствует возможность включения туннелирования X11. Чтобы воспользоваться этой возможностью, клиентOpenSSH должен быть запущен с опцией -X.
SSH работает по принципу «клиент-сервер». Сервером является удалённая система, а клиентом — локальная (такая схема, как раз, и укладывается в традиционное понимание многими термина «клиент-сервер»,  а  в случае с X11 всё наоборот). Для того, чтобы разрешить форвардинг X11, удалённый сервер должен быть соответствующим образом сконфигурирован. Соответствующие настройки делаются в файле /etc/ssh/sshd_config:
...
AcceptEnv LANG LC_CTYPE LC_NUMERIC LC_TIME LC_COLLATE
AcceptEnv LC_MONETARY LC_MESSAGES
AcceptEnv LC_PAPER LC_NAME LC_ADDRESS LC_TELEPHONE
AcceptEnv LC_MEASUREMENT LC_IDENTIFICATION LC_ALL LANGUAGE
#AllowAgentForwarding yes
#AllowTcpForwarding yes
#GatewayPorts no
X11Forwarding yes
...
Настройки туннелирования X11 могут быть также включены/запрещены для каждого пользователя отдельно:
...
Match User bilbobaggins
   X11Forwarding no
...
Внося изменения в конфигурационный файл сервера OpenSSH, не забывайте перезапускать его для того, чтобы изменения ступили в силу:
sudo service sshd restart
На стороне клиента, в файле /etc/ssh/ssh_config необходимо включить опциюForward11Trusted. В Fedora эта опция включена по умолчанию, в то время как в некоторых других дистрибутивах вам придётся сделать это самостоятельно:
...
ForwardX11Trusted yes
...
Имейте ввиду, что расположение файлов конфигурации OpenSSH в различных дистрибутивах могут быть разными. Подробности  вы найдёте в документации к OpenSSH, установленному в вашей системе.
После того, как клиент и сервер настроены, пользователь может пользоваться прелестями туннелирования X11, подключившись к удалённой системе SSH-клиентом, вызванным с опцией -X. При использовании этой опции, SSH передаёт удалённым приложениям всю необходимую информацию об X-сервере, так что вам не нужно их запускать с опцией -display или устанавливать предварительно переменную окружения DISPLAY.
Использование перенеправления X11 через SSH не требует, чтобы в удалённой системе работал GDM или X-сервер. Это даёт возможность работать с удалёнными компьютерами, не имеющими ни запущенного X-сервера, ни монитора вообще. Также, отсутствие GDM и X-сервера уменьшает количество потребляемых ресурсов на удалённой системе.
Однако, имейте ввиду, что поскольку графические приложения нуждаются в библиотеках, поставляемых вместе с X-сервером, последний должен быть установлен в удалённой системе.

Форвардинг X11 через SSH: «за» и «против»

«За»:
  • безопасно;
  • просто настраивается;
  • прост в использовании;
  • работает при использовании перенаправления портов;
  • не требует наличия запущенных GDM и X-сервера в удалённой системе;
  • возможность запуска нескольких приложений в пределах одной сессии;
  • работает в видео.
«Против»:
  • очень медленный по сравнению с использованием GDM и VNC;
  • не поддерживает звук;
  • протокол X11 сам по себе является очень «жирным».
По мотивам LinuxJournal.Com

.

Счетчик тИЦ и PR Яндекс.Метрика Msn bot last visit powered by MyPagerank.NetYahoo bot last visit powered by MyPagerank.Net ping fast  my blog, website, or RSS feed for Free