Предварительные требования
Я буду устанавливать X2Go на виртуальную машину со следующими характеристиками:
- Операционная система: Ubuntu 20.04.4 LTS (Focal Fossa).
- Процессор: 2-ядерный.
- Оперативная память: 4 ГБ.
- Жесткий диск: 50 ГБ.
Для аутентификации в X2Go нам потребуется сгенерировать SSH-ключи (при их отсутствии). Т. к. подключение будет осуществляться при помощи ОС Windows 10, сгенерируем пару ключей, используя встроенную утилиту OpenSSH (присутствует в Windows Server 2019 и выше, а также в Windows 10 сборки 1809 и выше).
Открываем командную строку (cmd) и вводим команду:
ssh-keygen
На все предложенные вопросы отвечаем нажатием клавиши ENTER:
По умолчанию ключи будут сохранены по следующему пути: C:/users/<имя-пользователя>/.ssh, например C:UsersAdministrator/.ssh/.
Далее нам необходимо скопировать открытый ключ (файл с расширением .pub, например id_rsa.pub) на наш сервер Ubuntu, для этого в командной строке выполняем следующую команду:
type C:UsersAdministrator.sshid_rsa.pub | ssh alex@94.228.118.75 "cat >> /home/alex/.ssh/authorized_keys"
C:UsersAdministrator.sshid_rsa.pub — это полный путь до файла с открытым ключом, alex — имя пользователя, от имени которого производится подключение к серверу (пользователь должен быть заранее создан на сервере). Если пользователь отсутствует, его необходимо создать при помощи команды adduser:
adduser alex
В примере выше мы создали нового пользователя с именем alex.
94.228.118.75 — адрес сервера, /home/alex/.ssh/authorized_keys — полный путь до файла authorized_keys, в котором хранятся открытые ключи. Этот файл должен располагаться в скрытой директории (директория с символом точки) SSH, которая, в свою очередь, находится в домашней директории пользователя. Обратите внимание, что скрытая директория с именем ssh должна быть создана заранее. Если она отсутствует на сервере — создайте ее вручную. Для этого перейдите в домашний каталог того пользователя, из-под имени которого будет производиться подключение. В нашем примере, подключение будет производиться при помощи пользователя alex. Соответственно, переходим в домашнюю директорию данного пользователя (cd /home/alex) и создаем скрытую директорию SSH, а также назначаем ей права доступа:
mkdir .ssh/ && chmod 700 .ssh/
Установка X2Go
Все команды, которые используются в данном разделе, необходимо запускать от имени root-пользователя или от имени обычного пользователя с правами sudo.
Прежде чем устанавливать X2Go на сервер, необходимо установить графический интерфейс пользователя (графическую оболочку), если она отсутствует. X2Go поддерживает большое количество различных графических оболочек, включая LXDE, XFCE, MATE и другие. С полным списком поддерживаемых оболочек можно ознакомиться на официальном сайте. Мы будем использовать оболочку XFCE в связи с тем, что она легковесная и потребляет минимум ресурсов.
1) Обновляем списки пакетов и устанавливаем XFCE:
apt update && apt -y install xubuntu-core
При установке графической оболочки установщик предложит выбрать, какой менеджер дисплея использовать по умолчанию. Выбираем lightdm:
Когда установка XFCE будет завершена, необходимо перезапустить сервер при помощи команды:
reboot
2) Для установки X2Go необходимо выполнить команду:
apt install -y x2goserver x2goserver-xsession
3) После того как все пакеты были установлены, проверяем статус X2Go-сервера:
systemctl status x2goserver
Если в выводе команды будет отображено active (running), то X2Go успешно запущен. Если статус будет другим, то X2Go необходимо запустить вручную:
systemctl start x2goserver
Установка клиента X2Go на Windows 10
Чтобы подключиться к серверу X2Go, необходимо скачать и установить официальную клиентскую программу. Для ОС семейства Windows скачать клиент можно по ссылке. Во время установки клиента необходимо выбрать рекомендованный тип установки (Recommended):
После того как клиентская программа была установлена, можно подключаться к серверу.
Подключение к серверу
Запускаем клиентскую программу. В разделе Session заполняем следующие поля:
- Host. Указываем IP-адрес или доменное имя сервера.
- Login. Указываем имя пользователя, из-под которого будет осуществлено подключение.
- SSH port. Указываем порт, который «слушает» SSH. По умолчанию используется 22-й порт.
- Use RSA/DSA key for ssh connection. Необходимо выбрать файл с закрытым ключом. Для этого нужно щелкнуть по значку папки и выбрать файл с закрытым ключом.
В самом низу программы, в разделе Session type, из выпадающего списка выбираем графическую оболочку, которая установлена на сервере. Мы используем XFCE, поэтому выбираем именно ее:
После того как все необходимые параметры были заполнены, нажимаем на кнопку OK. Если данные были введены правильно, то в новом окне отобразится графический рабочий стол:
Запуск отдельных приложений
В предыдущем примере при подключении мы получили доступ ко всей системе сразу: к рабочему столу и всем доступным приложениям. Однако X2Go позволяет запускать только необходимые приложения, например веб-браузер, файловый менеджер, утилиту для управления пакетами и т. д.
Чтобы X2Go мог запускать только отдельные приложения, на этапе подключения внизу необходимо выбрать пункт Published applications:
Далее при инициализации соединения вместо рабочего стола появится меню со всеми установленными приложениями в системе. Чтобы запустить необходимое приложение, необходимо выбрать его и нажать на кнопку Start:
Например, запустим приложение Software & Updates. После запуска приложение будет открыто в отдельном окне:
Чтобы выйти из запущенного приложения, достаточно нажать на кнопку Close (справа снизу).
Итоги
В статье мы познакомились с программой X2Go, при помощи которой можно удаленно подключаться к серверам и компьютерам, использующим Linux. Для работы с программой не требуется дополнительная настройка, можно сразу приступать к подключению. Дополнительно можно не волноваться о безопасности: весь трафик X2Go шифруется при помощи протокола SSH.