Глава 17. Удалённое отображение приложений RHEL9 (переадресация X11)
Содержание
В своей предыдущей главе мы рассмотрели как отображать рабочий стол RHEL9 удалённого компьютера целиком. Хотя это и работает хорошо когда вам требуется это может выглядеть отображать удалённо весь рабочий стол, это может выглядеть "стрельбой из пушки по воробьям" когда вы желаете отображать отдельное приложение. Таким образом, данная глава рассмотрит отображение индивидуальных приложений удалённой системы.
Для запуска приложения в одной системе RHEL9 и её отображения в другой имеется пара предварительных требований. Прежде всего, та система, в которой это приложение должно отображаться, должна работать в качестве X сервера. Когда это система основана Linux или UNIX с исполняемой средой рабочего стола, это не проблема. Тем не менее, когда система работает под управлением Windows или macOS, вам необходимо установить X сервер прежде чем вы сможете отображать приложение из удалённой системы. Для этой цели доступен ряд коммерческих и бесплатных серверов X на основе Windows и поиск в Интернете должен снабдить вас перечнем вариантов.
Во- вторых, та система, в которой подлежит исполнению данное приложение (в противовес системе, в которой это приложение отображается) должна быть настроена
на доступ через SSH. Подробности относительно настройки SSH в системе RHEL9 можно найти в Главе 15, Настройка в
RHEL9 аутентификации на основе ключей SSH. Эта система также должна исполнять вместо Wayland X Window System от X.org. Чтобы включить систему X.org,
отредактируйте имеющийся файл /etc/gdm/custom.conf
и снимите комментарий со строки WaylandEnable как отражено ниже
и перезапустите эту систему.
# Uncomment the line below to force the login screen to use Xorg
WaylandEnable=false
Наконец, SSH должен быть настроен на разрешение переадресацию (forwarding) X11. Это достигается добавлением в конфигурацию SSH данной системы приводимой далее
директивы, согласно которой и происходит переадресация. По умолчанию, в RHEL9, файл /etc/sshd_config
содержит
директиву на включение всех файлов конфигурации, содержащихся в каталоге /etc/ssh/sshd_config.d
:
Include /etc/ssh/sshd_config.d/*.conf
Файл с названием 50-redhat.conf
будет создан во вновь установленной системе в папке
/etc/ssh/sshd_config.d
. Измените этот файл и убедитесь что свойство X11Forwarding разрешено следующим образом:
X11Forwarding yes
После внесения данного изменения сохраните данный файл и перезапустите соответствующую службу SSH:
# systemctl restart sshd
После соблюдения перечисленных условий станет возможным удалённое отображение приложения рабочего стола на основе X.
Самый первый шаг при удалённом отображении некого приложения состоит в переходе к той системе, в которой данное приложение должно отображаться. В этой системе
установите SSH соединение к необходимой удалённой системе так, чтобы у вас имелось приглашение на ввод команд. Этого можно достичь запустив команду ssh. При
использовании команды ssh
нам потребуется воспользоваться флагом -X
чтобы сообщить оболочке что мы планируем выполнять обмен через туннель поверх данного соединения:
$ ssh -X user@hostname
В приведённой выше команде user
это имя пользователя для применения при регистрации в соответствующей удалённой
системе,а hostname
это имя хоста или IP адрес такой удалённой системы. Введите свой пароль в приглашении на ввод и,
после регистрации, выполните следующую команду чтобы увидеть настройки DISPLAY:
$ echo $DISPLAY
Эта команда должна вывести нечто похожее на:
localhost:10.0
Чтобы отобразить приложение, запустите его из приглашения но ввод командной строки, например:
$ gedit
После исполнения приведённой выше команды в вашей удалённой системе должен запуститься инструмент gedit
, но
отображение интерфейса пользователя происходит в локальной системе.
Когда файл /etc/ssh/sshd_config.d/50-redhat.conf
в удалённой системе содержит приводимую ниже строку,
тогда имеется возможность доверенной переадресации X11:
ForwardX11Trusted yes
Доверенная переадресация слегка быстрее переадресации без доверия, однако менее безопасна так как она не обязывает исполнение контроля безопасности X11. При
доверенной переадресации X11 необходим флаг -Y
:
$ ssh -Y user@hostname
Для улучшения производительности, при использовании более медленных соединений, данные X11 могут сжиматься с применением флага
ssh -C
:
$ ssh -X -C user@hostname
Для отображения основанных на RHEL9 прикладных приложений в Windows, в такой системе Windows должны быть установлены клиент SSH и X сервер. Сам предмет установки и применения клиента PuTTY в Windows ранее был рассмотрен в этой книге в Главе 15, Настройка в RHEL9 аутентификации на основе ключей SSH. Отсылаем вас к этой главе если вы ещё не установили PuTTY в своей системе Windows.
Относительно сервера X доступен ряд вариантов, хотя популярным вариантом выбора предстаёт VcXsrv, который бесплатно доступен со следующей URL.
После того как X сервер VcXsrv был установлен, на вашем рабочем столе появится приложение с названием XLaunch и в меню Start (Пуск). Запустите XLaunch и выберите вариант отображения (наиболее гибким выступает вариант со Множеством окон - Multiple windows - который позволяет каждому прикладному приложению клиента появляться в собственном окне):
Кликните по кнопке Next для продолжения с остающимися экранами, принимая настройки конфигурации по умолчанию. На заключительном экране кликните кнопку Finish для запуска сервера X. Если появится диалог Windows Defender, кликните по соответствующей кнопке чтобы разрешить доступ к выбранным сетевым средам.
После запуска XLaunch появится в панели задач и выйти из него можно кликом правой кнопки по его иконке с последующем выбором варианта меню Exit...:
Обладая установленным и исполняемым сервером X, запустите PuTTY и, либо введите сведения для соединения с необходимым удалённым хостом, либо загрузите ранее сохранённый профиль сеанса. Прежде чем установить такое соединение, тем не менее, требуется включить переадресацию X11. Таким образом, внутри главного окна PuTTY отмотайте вниз варианты в панели слева, раскройте раздел SSH, и выберите варианты X11, как это отображено на Рисунке 17-3:
Включите флаговую кнопку Enable X11, выделенную на Рисунке 17-4, вернитесь к экрану сеансов и откройте необходимое соединение (заблаговременно сохранив этот сеанс, если вы планируете им пользоваться снова):
При помощи данного сеанса PuTTY зарегистрируйтесь в системе RHEL9 и запустите прикладное приложение рабочего стола. После краткой задержки в вашем окне рабочего
стола Windows появится это прикладное приложение в его собственном окне. Все открываемые этим прикладным приложением диалоги появляются в отдельных окнах в точности
так, как если бы это был рабочий стол GNOME RHEL9. Рисунок 17-5, к примеру, показывает отображаемое в окне системы Windows 11 средство
nm-connection-editor
RHEL9:
Для тех случаев, когда в противоположность доступу ко всему рабочему столу требуется удалённый доступ к индивидуальным приложениям рабочего стола RHEL9, переадресация X11 предоставляет обладающее малым весом решение для удалённого отображения графических приложений. Та система, в которой должны появляться эти приложения, должна исполнять среду рабочего стола на основе системы X Window (такой как GNOME) или обладать установленным и выполняемым сервером X. После того как в соответствующем удалённом сервере разрешена переадресация X11 и установлено из локальной системы безопасное соединение SSH с параметром переадресации X11, в таком локальном X сервере может удалённо отображаться большинство приложений.