Запуск графического приложения на удаленном хосте (Linux CentOS 8) через SSH

Запуск графического приложения на удаленном хосте (Linux CentOS 8) через SSH

У меня возникли некоторые вопросы по попытке запустить приложение GUI удаленно из SSH. Мои навыки работы с Linux ограничены, и у меня возникли некоторые проблемы при попытке добиться этого с помощью следующего сценария:

У меня есть хост с CentOS 8 и GNOME GUI, подключенный к телевизору, без подключенной мыши или клавиатуры (это удаленный хост, я буду называть его СЕРВЕР). У меня также есть локальный хост с SSH-клиентом (SSH).

Что я пытаюсь сделать:

Используя SSH, я хочу разблокировать экран приветствия, который отображается на телевизоре, подключенном к СЕРВЕРУ, затем я хочу запустить Retroarch (чтобы загрузить его на телевизоре, подключенном к СЕРВЕРУ). Как мне войти на СЕРВЕР, чтобы выйти из экрана приветствия GNOME? Используя команду:

loginctl unlock-sessions

работает только если я включаю SERVER, подключаю клавиатуру, вхожу в систему и жду, пока экран не заблокируется из-за бездействия. Кроме того, при запуске RETROARCH через SSH я нашел 2 способа сделать это, которые "работают", используя DISPLAY=:0 и nohup, но они оба блокируют процесс в сеансе SSH (помимо того, что он блокирует терминал или процесс в сеансе SSH, он работает только если я уже вошел в систему SERVER и прошел экран приветствия). Есть ли способ запустить его так, как будто я запускаю приложение напрямую с SERVER?

решение1

Чтобы удаленно взаимодействовать с оконным менеджером, например Gnome, вам необходимо рассмотреть возможность запуска сеанса VNC, поскольку, насколько мне известно, оконные менеджеры не предназначены для управления через SSH + CLI.

Если вы используете Gnome поверх X11, то вам следует рассмотреть возможность использования X11-vnc, который предоставит вам удаленный доступ к текущему сеансу X11, т.е. вы увидите через VNC то же изображение, что и на телевизоре, подключенном к СЕРВЕРУ.

Если вы работаете на Wayland, вам придется провести собственное интернет-исследование, чтобы узнать, чем является замена X11-vnc Wayland.

Для 1-го случая это следующие шаги:

Сервер:

apt install x11-vnc -y
x11-vnc

Клиент :

apt install tigervnc-viewer -y
ssh -L 5901:localhost:5901 <SERVER-IP>
vncviewer localhost:5901

Лучше всего обернуть протокол VNC в туннель ssh, поэтому многие серверы VNC по умолчанию слушают только на localhost. Номер порта VNC может меняться, но он установлен, чтобы начинаться с 5900.

Связанный контент