Была необходимость запустить графическое приложение на удаленном сервере. Такая возможность существует. Да именно с использованием графики. Все выполняется из терминала по SSH.
Можно запустить программу, например Gimp, на удаленном сервере с выводом изображения на свой монитор, так же и с выводом на удаленный монитор. Во втором случае вы просто физически не увидите этого, но на удаленном мониторе он запустится.
SSH (Secure Shell) — это протокол сетевого уровня, который позволяет пользователям безопасно подключаться к удаленным компьютерам через сеть. Этот протокол широко используется для управления системами и приложениями на удаленных серверах.
Подготовка к запуску графического приложения по ssh
Для успешного запуска, нужно внести изменения в файл sshd_config, расположенный в каталоге /etc/ssh.
Для его редактирования я использую редактор nano, вы можете использовать свой.
На своем ПК
Устанавливаем, если не установлена служба ssh:
sudo apt install ssh
Открываем файл на своем компьютере, командой:
sudo nano /etc/ssh/ssh_config
Раскомментируем или допишем строку:
ForwardX11 yes
Сохраняем файл Ctrl+O закрываем Ctrl+X.
На удаленном ПК или сервере
Служба ssh должна быть уже установлена, иначе вы не сможете к нему подключится.
Подключаемся к удаленной машине, серверу по ssh.
Далее на удаленной машине, сервере вводим команду:
sudo nano /etc/ssh/ssh_config
Раскомментируем или допишем строку:
X11Forwarding yes
Сохраняем файл Ctrl+O закрываем Ctrl+X
Перезапускаем ssh на удаленной машине командой:
sudo service ssh restart
Теперь, можно подключившись по ssh к серверу или удаленному компьютеру, запустить программу, например gimp, запускается командой:
gimp
И на вашем компьютере откроется окно браузера, но только сам браузер будет работать на удаленной машине, просто изображение будет выводится у вас на ПК.
Для стабильной работы рекомендуется использовать утилиту nohup, команда будет выглядеть так
nohub gimp
Вывод изображения на удаленной машине
Подключитесь по ssh к удаленной машине и введите вначале команду:
export DISPLEY=:0
затем команду для запуска приложения.
Приложение запустится, но вывод будет осуществлятся на монитор подключенный к удаленной машине.
Поэтому вы не увидите удивленное лицо того кто наблюдает этот монитор!
SSH обеспечивает безопасное шифрованное соединение между вашим локальным компьютером и удаленным сервером. Это означает, что все данные, передаваемые через это соединение, защищены от перехвата.
Кроме того, с помощью SSH можно безопасно копировать файлы между системами с помощью команд scp
или rsync
, устанавливать и настраивать программное обеспечение на удаленных серверах, выполнять команды на удаленных машинах и многое другое.
В целом, SSH является важным инструментом для администраторов систем и разработчиков, работающих с удаленными серверами.