Настройка 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» завершена.