Настройка X11 forwarding используя ssh в Unix/Linux

Настройка X11 forwarding используя ssh в Unix/Linux

X11 forwarding — это механизм, позволяющий отображать на локальном клиентском компьютере графические интерфейсы X11 программ, запущенных на удаленном Unix/Linux сервере. SSH имеет возможность безопасного туннелирования X11 соединений, так что сеансы X11 forwarding-а шифруются и инкапсулируются. Если вы хотите настроить X11 forwarding через SSH, то данная тема именно для вас.

Установка ПО для настройки X11 forwarding используя ssh в Unix/Linux

Для X11 forwarding-а на удаленном сервере не требуется полная система X11. Однако, серверу необходимо установить xauth. xauth — это утилита, которая поддерживает конфигурации Xauthority, используемые сервером и клиентом для аутентификации сеансов X11. Чтобы установить xauth, выполните следующие действия на удаленном сервере.

Установка xauth в Debian/Ubuntu

И так, выполняем команду:

# apt-get install xauth -y

Переходим к настройке.

Установка xauth в CentOS/RedHat

И так, выполняем команду:

# yum install -y xorg-x11-xauth xorg-x11-utils xorg-x11-fonts-* xorg-x11-apps xorg-x11-server-Xorg

Установка xauth в Fedora

И так, выполняем команду:

# dnf install xorg-x11-xauth

Установка xauth для других Unix/Linux ОС

Можно создать docker контейнер и запустить его.

Переходим к настройке.

Настройка X11 forwarding используя ssh в Unix/Linux

Открываем файл:

# vim /etc/ssh/sshd_config

И прописываем (приводим к виду):

X11Forwarding yes
X11DisplayOffset 10

Так же, можно прописать:

X11UseLocalhost no

Перезапуск SSH сервера:

  • Если используете Debian 6, Ubuntu или Linux Mint:
    # /etc/init.d/ssh restart
  • Если используете Debian 7, CentOS/RHEL 7, Fedora
    # systemctl restart ssh.service
  • Если используете CentOS/RHEL 6
    $ sudo service sshd restart

Вышеупомянутая настройка, позволяет X11 форвардинг на хост сервера. Если вы хотели бы включить X11 forwarding для отдельного пользователя, вы можете использовать пользовательский файл конфигурации ssh (т. е. $HOME/.ssh/config). Таким образом, вы можете использовать переадресацию X11 только тогда, когда вы используете ssh для учетной записи пользователя. Открываем:

$ vim $HOME/.ssh/config

И прописываем:

ForwardX11 yes

Мой файл выглядит следующим образом:

IdentityFile ~/.ssh/id_rsa
Host *
    UseKeychain yes
    ForwardX11 no
    ServerAliveInterval 15
    ForwardAgent yes
    ForwardX11Trusted yes

    GatewayPorts yes

Если используете Vagrant,  то внутри его, можно пробросить следующие опции:

config.ssh.forward_agent = true
config.ssh.forward_x11 = true

Ну и далее запускаем все это дело.

Использование X11 forwarding через ssh в Unix/Linux

На локальном хосте должна быть установлена система с X11, чтобы отображать удаленные программы. Для того чтобы выполнить форвардинг, выполните:

$ ssh -X remote_ssh_user@remote_server

Например:

$ ssh -X -v root@66.66.66.66

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

Можно еще опции, передавать через коммандную строку:

$ ssh -o ForwardX11=yes user_name@your_remote_server

Безопастность при использовании X11 forwarding через ssh

Обычно, не рекомендуется всегда работать с «ForwardX11 yes». Поэтому, если вы хотите использовать свои SSH-соединения с пвыщенной безопасностью, лучше всего сделать следующее:

  • Не прописывать «ForwardX11 yes» в ваш «$HOME/.ssh/confi»g файл.
  • Используйте «ForwardingX11» только когда вам это необходимо, используя «ssh -X your_user@your_server».
  • Если вы можете, полностью отключите «X11Forwarding» на вашем сервере.

Вот и все, статья «Настройка X11 forwarding используя ssh в Unix/Linux» завершена.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.