ssh x11 forwarding

X Windows System использует клиент-серверную модель. X Server обменивается сообщениями с различными клиентскими программами. Сервер принимает запросы на вывод графики (окон) и отправляет обратно пользовательский ввод (от клавиатуры, мыши или сенсорного экрана).

SSH в режиме X11Forwarding перенаправляет трафик удаленного X Client'a локальному X Server'у. Окно приложения отображается на локальном рабочем столе, пока вся логика выполняется на удаленном компьютере.

Схема работы X11Forwarding

Настройка удаленной машины

В некоторых дистрибутивах (например, Gentoo) перенаправление трафика X Window System по сети отключена. Параметр X11Forwarding в файле /etc/ssh/sshd_config управляет этим режимом:

...
X11Forwarding yes # Возможные значение yes | no
...

Если режим был отключен, включите его и перезапустите ssh сервер:

root@pc:/# systemctl restart sshd
root@pc:/#
Подключение и запуск приложения

Для подключения к удаленному компьютеру выполните команду:

user@pc ~ $ ssh -XYC remote_user@remote_ip
password: 
remote_user@remote_ip ~ $

-XYC:

  • X - активирует режим X11 Forwarding,
  • Y - доверенное перенаправление трафика,
  • С - сжатие трафика;

remote_user@remote_ip - имя пользователя и адрес удаленного компьютера.

Запуск приложения производится без дополнительный опций и параметров. Например, команда:

remote_user@remote_pc ~ $ nautilus

запустит файловой менеджер nautilus и покажет его на экране.

Определить удаленное приложение можно с помощью заголовка - в скобках, после названия приложение будет указано имя хоста компьютера (Например, nautilus (на remote_pc)).

Плюсы и минусы

Минус: Требовательность к скорости интернета. Например, запуск Intellij Idea достигает 100 КБайт/Сек (Без сжатия трафика - 800 - 1200 КБайт/сек).

Плюс: Логика приложения выполняется на удаленном компьютере. Ресурсоемкие задачи обрабатываются на другом компьютере.

Плюс: Работа с документами, просмотр видео, прослушивание музыки без необходимости копирования на локальный компьютер.

Плюс: Доступ к ресурсам локальной сети на удаленной машине.

Выводы

Все известные мне Unix системы используют SSH и X Window System. Что в свою очередь стирает расстояния и позволяет решать широкий круг задач.