У меня возникли некоторые вопросы по попытке запустить приложение 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.