2.6.4 Настройка X2GO
Скачать документ Установка x2go
Настройка клиента
Обзор клиента
Запуск определенного приложения
Проброс принтеров
Настройка трансляции токенов в сессию сервера
Завершение сессий x2go
X2Go Broker
X2Go — это программное обеспечение для удаленного рабочего стола с открытым исходным кодом, использующее модифицированный протокол NX 3. X2Go предоставляет удаленный доступ к графическому пользовательскому интерфейсу системы.
В данной статье раскрываются основные моменты по настройке данного варианта удаленного подключения, однако вы так же можете обратиться к официальной документации.
Вы можете подробнее ознакомиться с организацией удаленного доступа, просмотрев наши обучающие видео:
на RuTube — Организация удаленного доступа с помощью x2go. Проброс принтеров, трансляция токенов;
в Яндекс.Дзен — Организация удаленного доступа с помощью x2go. Проброс принтеров, трансляция токенов;
в VK Видео — Организация удаленного доступа с помощью x2go. Проброс принтеров, трансляция токенов.
На наших каналах вы также сможете найти много другой полезной информации.
Установка x2go
Для установки x2go перейдите в сеанс пользователя root:
su -
и выполните команду:
dnf install x2goserver-xsession x2goserver-fmbindings x2goserver-common x2goserver x2goagent x2goserver-desktopsharing
Здесь и далее команды будут выполняться от пользователя root, если не указано иное.
Для установки x2go на клиенте выполните команду:
dnf install x2goclient
Настройка клиента
1. Откройте x2go client из «Главного меню» - «Интернет» - «X2Go Client».
2. После открытия потребуется настроить параметры:
Хост: IP-адрес машины;
Пользователь: имя учетной записи.
SSH-порт: если не менялся на клиенте, оставить 22.
3. Для создания новых сессий при подключении к серверу требуется выбрать тип сессии Mate. В РЕД ОС 7.3 по умолчанию используется графическая оболочка Mate. Если же у вас используется другая DE, то тип сессии изменяется в соответствии с нужным требованием.
Если необходимо соединение с активной сессией пользователя, то выберите тип сессии «X2Go/X11 Desktop Sharing».
4. Обратите внимание, что можно настроить автоподключение, указав RSA/DSA ключ через выбор файла ключа.
Для этого необходимо выполнить следующие действия:
- На клиенте необходимо сгенерировать ключ SSH командой ssh-keygen (с правами локального пользователя):
ssh-keygen -t rsa или ssh-keygen -t dsa
Будет выведено предложение ввести пароль для защиты файла ключа. Если вы планируете выполнять скрипты по SSH, оставьте пароль пустым.
- Передайте публичный ключ на сервер командой от локального пользователя:
ssh-copy-id -i ~/.ssh/id_rsa.pub user@server или ssh-copy-id -i ~/.ssh/id_dsa.pub user@server
- В x2go client выберите приватную часть ключа.
При подключении произойдет запрос фразы-пароля для ключа.
- Для того чтобы настроить автоматический вход без пароля, необходимо установить флажок в поле «Try auto login (via SSH Agent or default SSH key)».
Обзор клиента
Вкладка «Соединение»
В зависимости от пропускной способности сетевого подключения вы можете выбрать предпочитаемый тип соединения:
MODEM;
ISDN;
ADSL;
WAN;
LAN.
Также данная вкладка предоставляет возможность выбора типа сжатия изображения путем выбора метода сжатия и качества изображения.
Вкладка «Ввод/Вывод»
Данная вкладка позволяет задать разрешение клиента, т.е. использовать полноэкранный режим или указать свои собственные параметры.
При наличии нескольких физических мониторов вы можете активировать опцию Xinerama.
Для работы с буфером обмена рекомендуется оставить настройку двустороннего буфера обмена для удобства работы.
Соответственно, настройку клавиатуры рекомендуется оставить по умолчанию, однако если есть необходимость ручной настройки, то выберите пункт ручной настройки клавиатуры.
Вкладка «Медиа»
Стоит обратить внимание,что клиент X2Go поддерживает проброс звука, по умолчанию данная опция включена. Однако вы можете изменить свойства подключения и изменить установленное значение по умолчанию в случае необходимости.
Не рекомендуется выбирать тип звука arts или esd, т. к. они являются устаревшими. При попытке выбора любого из данных типов клиент посоветует перейти на тип PulseAudio.
Также вы можете опционально изменить SSH-туннель и порт по умолчанию.
Вкладка «Экспорт каталогов»
Стоит обратить внимание на такую полезную функцию, как экспорт каталогов.
На данной вкладке вы можете выбрать, каким каталогом желаете поделиться. После выбора и добавления он отобразится в списке, где вы сможете активировать его автоматическое соединение.
После подключения через x2go в домашнем каталоге пользователя будет создан каталог media, именно в него перенаправится каталог с клиента.
Запуск определенного приложения
Клиент x2go поддерживает также вариант подключения не только к полному рабочему столу сервера, но и к конкретному приложению. Реализовать данное подключение можно при помощи типа сессии «Приложение» или «Удаленные приложения».
При выборе типа сессии приложения вам будет доступен ряд предустановленных вариантов запуска:
При выборе типа сессии «Удаленные приложения» откроется новая сессия, где вручную потребуется выбрать то, какое приложение требуется запустить.
Проброс принтеров
1. Для корректного проброса принтера необходимо установить следующие пакеты:
- На сервере:
dnf install x2goserver-printing cups-x2go
- На клиенте:
dnf install cups-x2go
При необходимости перезапустите службу cups:
systemctl restart cups
2. На сервере X2go добавьте принтер Generic CUPS-X2Go (Главное меню-Администрирование-Настройки принтера)
3. В x2go-клиенте перейдите в меню «Опции» - «Установки» - «Печать» и выберите принтер, который будет по умолчанию при печати. Установите параметр "Открывать этот диалог перед печатью".
4. При печати документа в сессии x2go выберите принтер «Generic CUPS-X2Go-printer» и нажмите «Печать».
После этого на вашем ПК откроется окно выбора локального принтера для печати.
Настройка трансляции токенов в сессию сервера
1. Для настройки трансляции прежде всего требуется убедиться, что настроен КриптоПро и необходимые драйвера для токенов на сервере x2go - инструкция по настройке.
2. Проверьте работоспособность токена в утилите «Ключевые носители и сертификаты» и затем установите флажок в x2go client - Медиа - Поддержка смарт-карт.
Данная поддержка обеспечивает трансляцию как смарт-карт, так и usb-токенов.
Завершение сессий x2go
На сервере необходимо запустить команду, которая покажет все активные сессии:
x2golistsessions_root
Примерный вывод данной команды:
3226 | user-50-1649312737_stDMATE_dp24 | 50 | localhost.localdomain | S | 2022-04-07T09:25:38 | 8b2f5d3433700b44b5acf5150a7d35fb | 10.81.1.132 | 36540 | 36541 | 2022-04-07T09:35:04 | user | 1839 | 36542 | -1 | -1 7350 | user-51-1649313366_stS1XSHADuserXSHADPP50_dp24 | 51 | localhost.localdomain | R | 2022-04-07T09:36:06 | c9f4d9a24979efe9ddca96ec20e722cc | 10.81.1.132 | 56847 | 56848 | 2022-04-07T09:36:10 | user | 1211 | 56849 | -1 | -1 7769 | user-52-1649313401_stS1XSHADuserXSHADPP0_dp24 | 52 | localhost.localdomain | R | 2022-04-07T09:36:41 | 414d5ac30224e035a46c9d7be0d4608b | 10.81.1.132 | 38461 | 38462 | 2022-04-07T09:36:43 | user | 1176 | 38463 | -1 | -1
Для завершения определенной сессии выполните:
x2goterminate-session <session_id>
где <session_id> - это идентификатор сессии.
Пример:
x2goterminate-session user-50-1649312737_stDMATE_dp24
Массовое завершение сессий
Если же на сервере требуется применить массовую очистку сессий, то вы можете воспользоваться одним из предложенных ниже скриптов, которые автоматизируют данный процесс.
Завершение сессии и вывод текущей даты
Пример скрипта завершения сессий и вывода текущей даты при завершении:
#!/bin/bash
f=$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )
NOWDATE=$(date '+%Y-%m-%d_%T')
echo -----$NOWDATE------
for i in $(x2golistsessions_root | cut -d "|" -f 2 | sed "s/|/ | /g")
do
echo terminate - ${i} # вывод на экран
x2goterminate-session ${i} # команда завершения пользователя
done
Завершение неактивных более 2 часов сессий
Пример скрипта завершения сессий, время простоя которых более 2 часов:
#!/bin/bash
for ll in `x2golistsessions_root`; do
SessionDate=`echo $ll | awk -F \| '{print $11}';`
CleanSessionDate=`echo ${SessionDate//T/ }`
FinalDate=`echo ${CleanSessionDate//-//}`
CurrentDate=`date +%s`
SessionDateEpoch=`date -d "$FinalDate" +%s`
DateDiff=$(($CurrentDate-$SessionDateEpoch))
Hours=$(($DateDiff/60/60))
if [[ $Hours -gt 2 ]]; then
sid=`echo $ll | awk -F \| '{print $2}'`
x2goterminate-session $sid
fi
done
Завершение неактивных более 1 дня сессий
Пример скрипта завершения сессий, время простоя которых больше 1 дня:
#!/bin/bash
LIMIT_DAYS=1
for ll in `x2golistsessions_root`; do
#Get the date of last use of the session
lastd=`echo $ll | awk -F \| '{print $11}' | awk -F T '{print $1}';`
#Date in seconds
lastsec=`date -d "$lastd" +%s`
#Current date in seconds
now=`date +%s` days=`echo $(( ($now - $lastsec) /60/60/24 ))`
if [[ $days -gt $LIMIT_DAYS ]]; then
sid=`echo $ll | awk -F \| '{print $2}'`
echo "terminating session: $sid, $days days old, lastd: $lastd, lastsec: $lastsec, now: $now" x2goterminate-session $sid
fi
done
Настройка автоматического завершения сессий
Также администратору сервера будет удобен вариант создания сервиса, который по определенному таймеру завершит сессии. Ниже приведен пример сервиса, который по таймеру запускает абстрактный скрипт. Обратите внимание, что необходимо изменить путь к скрипту на ваш.
Создайте файл:
nano /etc/systemd/system/x2go-sessions-killer.service
со следующим содержимым:
[Unit]
Description="X2Go service for session cleaning"
After=network.target
[Service]
Type=simple
ExecStart=/usr/bin/SCRIPT.sh # укажите ваш путь к скрипту
Restart=always
RestartSec=7200
[Install]
WantedBy=multi-user.target
В строке RestartSec=7200
указано время перезапуска скрипта в секундах. В примере скрипт будет выполняться каждые два часа. Измените это значение на необходимое вам.
Затем в папку /usr/bin/ добавьте ваш скрипт и назначьте ему права на исполнение:
chmod +x /usr/bin/SCRIPT.sh
После этого обновите список сервисов и добавьте сервис завершения сессий в автозагрузку:
systemctl daemon-reload systemctl enable --now x2go-sessions-killer.service
X2Go Broker
X2Go Broker — модуль, позволяющий централизованно управлять настройками сессий клиентов. В большинстве случаев клиенты X2Go запускаются в автономном режиме, и пользователь сам настраивает одну или несколько сессий для подключения к серверам X2Go, а все настройки сохраняются на локальных компьютерах.
Данный модуль позволяет хранить настроенные профили подключения непосредственно на сервере, а для получения настроек с сервера клиент X2Go должен быть запущен в режиме Broker Mode, при этом локально настроенные профили игнорируются. Это решение полезно в масштабах крупных предприятий для балансировки нагрузки.
Настройка x2gobroker
Для установки пакетов x2gobroker перейдите в сеанс пользователя root:
su -
и выполните команду:
dnf install x2gobroker x2gobroker-common x2gobroker-ssh x2gobroker-daemon x2gobroker-authservice
Далее необходимо в файл /etc/hosts добавить запись о сервере:
echo "<ip-адрес_сервера> x2goserver" >> /etc/hosts
В файле /etc/x2go/broker/x2gobroker-sessionprofiles.conf определите следующие параметры:
[x2goserver-mate]
name=Test Work Mate
host=x2goserver
command=MATE
usebrokerpass=true
где:
[x2goserver-mate] — уникальный идентификатор сессии;
name — имя сессии, которое будет отображаться на клиенте;
command — тип сессии (MATE, KDE и т.п.).
Затем запустите необходимые для работы сервисы:
systemctl enable x2gobroker-authservice --now systemctl enable x2gobroker-daemon --now
Настройка x2goserver
Для настройки сервера необходимо сначала установить соответствующие пакеты командой:
dnf install x2goserver x2goserver-printing cups-x2go x2goserver-xsession
После установки в файл /etc/hosts следует добавить запись о брокере командой:
echo "<ip-адрес_брокера> x2gobroker" >> /etc/hosts
Запустите сервис сервера командой:
systemctl enable x2gocleansessions --now
Настройка x2goclient
Для настройки клиента необходимо установить соответствующий пакет командой:
dnf install x2goclient
После установки клиента в файл /etc/hosts следует добавить запись о брокере и сервере командой:
echo "<ip-адрес_брокера> x2gobroker" >>/etc/hosts echo "<ip-адрес_сервера> x2goserver" >>/etc/hosts
Для подключения к серверу выполните команду:
x2goclient --broker-url=http://x2gobroker:8080/plain/
В окне аутентификации введите логин и пароль пользователя, с правами которого необходимо подключиться к серверу, и выберите нужную сессию (в примере Test Work Mate).
В активном окне сессии можно убедиться в правильности подключения, проверив IP-адрес машины. Должен быть отображен IP-адрес сервера.
Запуск отдельного графического приложения
Для запуска определенного приложения на брокере необходимо добавить конфигурацию новой сессии (файл /etc/x2go/broker/x2gobroker-sessionprofiles.conf):
[x2goserver-brasero]
name=Test Brasero
host=x2goserver
command=brasero
usebrokerpass=true
В данном случае в параметре command
указывается название приложения, которое должно быть запущено вместо графической сессии.
Для подключения клиента к серверу используется та же команда:
x2goclient --broker-url=http://x2gobroker:8080/plain/
В окне аутентификации так же потребуется введите логин и пароль пользователя, с правами которого необходимо подключиться к серверу, и выбрать сессию с запуском отдельного приложения (в примере Test Brasero).
После успешного подключения будет открыто окно указанной программы.
Дата последнего изменения: 10.09.2024
Если вы нашли ошибку, пожалуйста, выделите текст и нажмите Ctrl+Enter.