Как настроить пересылку X11 с использованием SSH в Linux
Сегодня мы собираемся изучить менее известную, интересную и полезную особенность Linux. Я уверен, что большинство из вас знают о SSH. Мы можем безопасно получить доступ к удаленным системам Linux через SSH. Но знаете ли вы, что можно перенаправить X через SSH для удаленного запуска графических приложений? Да! Этот механизм известен как пересылка X11. В этом руководстве мы собираемся настроить пересылку X11 с использованием SSH в Linux.
Что такое переадресация X11?
Пересылка X11 — это метод, позволяющий пользователю запускать графические приложения, установленные в удаленной системе Linux, и пересылать окна (экран) этих приложений в локальную систему. Удаленная система не обязательно должна иметь X-сервер или графическую среду рабочего стола. Следовательно, настройка пересылки X11 с использованием SSH позволяет пользователям безопасно запускать графические приложения через сеанс SSH.
Если выразить это с точки зрения непрофессионала,
- Подключаемся к удаленной системе по SSH,
- А затем мы запускаем приложение с графическим интерфейсом (которое установлено в удаленной системе) из этого сеанса SSH.
- Теперь приложение с графическим интерфейсом запускается в удаленной системе, но окно приложения появляется в нашей локальной системе. Таким образом, мы можем использовать эту удаленную программу с графическим интерфейсом в вашей локальной системе так же, как мы используем локально установленную программу.
Прозрачный? Теперь давайте продолжим и посмотрим, как запускать удаленные приложения с графическим интерфейсом через сеанс SSH.
Настройка пересылки X11 с использованием SSH в Linux
Для целей данного руководства я буду использовать следующие две системы:
- Удаленный сервер — минимальный сервер CentOS 8 (без графического интерфейса).
- Локальная система — Ubuntu 20.04 LTS с Gnome DE.
Настройка пересылки X11 тривиальна.
Убедитесь, что вы установили xauth в своей удаленной системе Serer. Если он не установлен, выполните следующую команду от имени пользователя root или sudo:
dnf install xorg-x11-xauth
Перейдите в свою удаленную систему (в моем случае это CentOS 8) и отредактируйте файл "/etc/ssh/ssh_config
" с помощью вашего любимого редактора:
nano /etc/ssh/ssh_config
Добавьте/измените следующую строку:
[...]
X11Forwarding yes
Настройка пересылки X11 с использованием SSH в Linux
Нажмите Ctrl+O
, чтобы сохранить файл, и Ctrl+X
, чтобы закрыть файл. Перезапустите службу sshd, чтобы изменения вступили в силу:
systemctl restart sshd
Сделанный! Мы настроили переадресацию X11.
Теперь перейдите в свою клиентскую систему (в моем случае это Ubuntu 20.04) и получите доступ к удаленному серверу через SSH с помощью команды:
ssh -X root@192.168.225.52
Здесь опция -X
используется для включения пересылки X11 через SSH. Замените «root@192.168.225.52» именем пользователя и IP-адресом вашего удаленного сервера.
В первый раз вы увидите следующее предупреждающее сообщение.
/usr/bin/xauth: file /root/.Xauthority does not exist
Однако файл .Xauthority
должен быть автоматически создан во время первого входа в систему, поэтому последующие входы в систему должны быть в порядке.
Затем запустите любые приложения с графическим интерфейсом из этого сеанса SSH. У меня уже установлен графический текстовый редактор Gedit на моем сервере CentOS 8, поэтому я собираюсь запустить его с помощью команды:
gedit
Экран окна графического интерфейса gedit теперь появится в вашей локальной системе.
Запуск удаленных графических приложений через сеанс SSH в Linux
Вы можете взаимодействовать с приложением Gedit, установленным на удаленном сервере, используя дисплей, мышь и клавиатуру локальной системы.
Несмотря на то, что на моем сервере CentOS 8 нет рабочего стола с графическим интерфейсом, я могу открыть графический редактор Gedit и использовать его из своей локальной системы Ubuntu. Вот визуальная демонстрация:
Настройка пересылки X11 в Putty
Если вы используете клиент Putty для доступа к удаленным системам, введите IP-адрес или имя хоста вашей удаленной системы на вкладке Сеанс:
Подключитесь к удаленной системе с помощью Putty
Затем перейдите к Connection -> SSH -> X11 и включите опцию переадресации X11. Нажмите «Открыть», чтобы создать новый сеанс Putty:
Настройте переадресацию X11 в Putty
Введите имя пользователя и пароль удаленного сервера. Подключившись к удаленной системе через Putty, запустите любое приложение X, установленное на удаленном сервере.
Запуск графических приложений через сеанс Putty
Начните взаимодействовать с удаленным приложением с графическим интерфейсом из вашей локальной системы!