X2Go и использование командной строки?

Вопрос или проблема

Я начал пробовать X2Go вместо VNC для управления своими компьютерами под управлением Ubuntu, и хотя он в целом работает, я не совсем понимаю, как сделать следующие вещи.

Но сначала – я использую Ubuntu 20.04 с рабочим столом MATE на обоих компьютерах и использую sudo add-apt-repository ppa:x2go/stable (http://ppa.launchpad.net/x2go/stable/ubuntu). На компьютере, который должен управляться (сервере), я установил:

sudo apt install x2goserver x2goserver-xsession
sudo apt install x2godesktopsharing
sudo usermod -a -G x2godesktopsharing myuser

На компьютере, который управляет (клиенте), я установил:

sudo apt install x2goclient
  1. На сервере я действительно получаю “апплет” рабочего стола, где я могу включать или отключать сервер, что мне довольно нравится:

апплет рабочего стола x2go

Тем не менее, допустим, я вхожу на сервер через ssh, и сервер x2go отключил совместный доступ к рабочему столу. Тогда мой вопрос:

  • Как я могу включить (и отключить) совместный доступ к рабочему столу на сервере x2go из командной строки (по ssh)?

Далее, мне интересно, как с клиентом и размерами экрана – позвольте мне проиллюстрировать на примере с VNC:

Если у меня есть сервер VNC на моем серверном компьютере (например, 192.168.0.100) на порту 5900, я могу подключиться к нему из командной строки, используя, скажем, ssvncviewer:

ssvncviewer 192.168.0.100

Если у моего сервера есть рабочий стол с более высоким разрешением (размер пикселя, скажем, 1920 x 1200), а у моего клиента – с более низким разрешением (размер пикселя, скажем, 800 x 600), тогда вышеуказанная команда показывает “выемку” рабочего стола сервера без масштабирования:

окно выемки ssvncviewer

Затем, если я нажму F9, чтобы выдать “Во весь экран” в SSVNC, эта “выемка” занимает весь экран – и поскольку масштабирования нет, текст на рабочем столе сервера читаем, но я все равно могу перемещаться, перемещая указатель мыши к краям экрана (верх, низ, лево, право) – и затем автопрокрутка (или автопанорама) выполняется с помощью ssvncviewer.

С другой стороны, если я введу

ssvncviewer -scale auto 192.168.0.100

… тогда я получаю полный (большой) рабочий стол сервера, масштабированный до окна, которое может поместиться на клиенте – так что я могу наблюдать за рабочим столом сервера в целом; однако из-за масштабирования текст на самом деле не читаем (обратите внимание, артефакты внизу скриншота являются результатом кэширования сервера VNC):

масштабированный ssvncviewer

Ну, мне действительно нравится возможность переключаться между этими двумя режимами просмотра (некалиброванная выемка против масштабированной)… однако:

  1. Я действительно не могу найти опции для масштабированного и немасштабированного просмотра в графическом интерфейсе клиента X2Go, кроме этих (Сессия/Управление сессиями…/(выберите сессию)/Предпочтения сессии/ Ввод/Вывод):

предпочтения клиента x2go

Итак, если я подключаюсь через X2GoClient с размером “Пользовательский”, я получаю выемку, но по центру:

пользовательский клиент x2go

… и я не могу найти способ прокрутки; если я затем нажму CTRL+ALT+SHIFT+F, я перехожу в режим полного экрана – но он масштабирован (не читаемый текст); если я снова нажму CTRL+ALT+SHIFT+F, я выхожу из режима полного экрана, но тогда окно больше не показывает выемку, а вместо этого показывает масштабированный вид:

масштабированный клиент x2go

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

Так что мои вопросы здесь:

  • Существует ли способ запустить соединение клиента X2Go из командной строки (как я могу запустить соединение клиента VNC, например ssvncviewer 192.168.0.100)?
  • Существует ли режим “выемки” (то есть не масштабируемый) в клиенте X2Go с какой-либо формой интерактивной прокрутки, и если да, то как я могу его активировать (либо через GUI, либо через командную строку)?

Я в конце концов нашел этот пост в почтовом списке, Альтернативы командной строки для x2goclient-cli, предположительно с 2011 года:

Если я правильно интерпретировал недавний почтовый трафик (и дорожную карту в вики), x2goclient-cli устарел и больше не будет активно разрабатываться. Насколько я могу видеть, в настоящее время есть две альтернативы использованию x2goclient-cli:

  • x2goclient (QT-клиент) с параметрами командной строки.
  • pyhoca-cli.

Я попробовал посмотреть параметры командной строки x2goclient, и я не могу действительно разобраться, как начать сессию с его помощью …

С другой стороны, я нашел, что pyhoca-cli находится в репозиториях Ubuntu:

… и я нашел документ о его использовании:

Поэтому я установил его с помощью:

sudo apt install pyhoca-cli

… и следуя инструкциям, я попробовал это (поскольку я уже установил соединения через графический интерфейс x2goclient, я убрал --add-to-known-hosts из примеров на странице); сначала нужно “перечислить рабочие столы”, то есть перечислить сеансы рабочего стола (так что вам нужно хотя бы раз установить соединение через графический интерфейс клиента X2Go)

$  pyhoca-cli --server 192.168.0.100 --list-desktops --user myuser
pyhoca-cli[139077] УВЕДОМЛЕНИЕ: подготовка запрашиваемой сессии X2Go
...
Пароль: 
pyhoca-cli[139077] (x2gocontrolsession-pylib) УВЕДОМЛЕНИЕ: подключение к [192.168.0.100]:22
pyhoca-cli[139077] (PyHocaCLI) УВЕДОМЛЕНИЕ: аутентификация прошла успешно

Рабочие столы X2Go, доступные для совместного использования
===================================
Хост: 192.168.0.100 - [192.168.0.100]:22
Имя пользователя: myuser

myuser@:0

Итак, из вышеуказанного, у меня есть сессия myuser@:0 – и это то, к чему я могу подключиться:

$  pyhoca-cli --server 192.168.0.100 --share-desktop myuser@:0 --user myuser --share-mode 1
pyhoca-cli[139324] УВЕДОМЛЕНИЕ: подготовка запрашиваемой сессии X2Go
...
pyhoca-cli[139324] (PyHocaCLI) УВЕДОМЛЕНИЕ: продолжаю интерактивный вход для пользователя ,,myuser''
Пароль: 
pyhoca-cli[139324] (x2gocontrolsession-pylib) УВЕДОМЛЕНИЕ: подключение к [192.168.0.100]:22
pyhoca-cli[139324] (PyHocaCLI) УВЕДОМЛЕНИЕ: аутентификация прошла успешно
pyhoca-cli[139324] (x2gosession-pylib) УВЕДОМЛЕНИЕ: Используя сессию myuser-50-1639641479_stS1XSHADmyuserXSHADPP0_dp24 в качестве основной сессии для профиля Pyhoca-Client_Session.
pyhoca-cli[139324] (PyHocaCLI) УВЕДОМЛЕНИЕ: Нажмите CTRL+C, чтобы завершить совместный доступ к рабочему столу для этой сессии...


^CПрерывание клавиатуры
2021-12-16T07:58:35Z
pyhoca-cli[139324] (x2gosession-pylib) ПРЕДУПРЕЖДЕНИЕ: совместный доступ к локальной папке отключен для этого профиля сессии
pyhoca-cli[139324] (x2gosession-pylib) ПРЕДУПРЕЖДЕНИЕ: совместный доступ к локальной папке отключен для этого профиля сессии
pyhoca-cli[139324] (x2goterminalsession-pylib) УВЕДОМЛЕНИЕ: очистка сессии myuser-50-1639641479_stS1XSHADmyuserXSHADPP0_dp24 после завершения
pyhoca-cli[139324] (PyHocaCLI) УВЕДОМЛЕНИЕ: Сессия X2Go myuser-50-1639641479_stS1XSHADmyuserXSHADPP0_dp24 завершена

Так что это работает – обратите внимание:

  • Я испытывал, что команда --share-desktop может не удастся подключиться; в этом случае мне пришлось остановить pyhoca-cli; затем запустить клиент X2Go в графическом режиме и подключиться оттуда один раз (успешно); после этого --share-desktop снова начал работать
  • Команда --share-desktop снова открывает центрированную выемку, как описано в OP – которая затем требует масштабированного полного экрана, и масштабирование сохраняется после выхода из полноэкранного режима

Так что это хорошо – теперь просто нужно выяснить:

  • Как включить/активировать сервер X2Go из командной строки по ssh
  • Как указать, что я хочу немасштабированную “выемку” в режиме полного экрана с автоматической прокруткой (через перемещение указателя мыши к верхним/нижним/правым/левым краям экрана).

EDIT: Обнаружил следующее: вышеуказанные примеры были выполнены с (думаю) графическим интерфейсом X2GOClient/Предпочтения сессии/Тип сессии “X2Go/X11 Desktop Sharing”. Мотивированный Клиент x2go для Windows отображает неправильное разрешение,

Я попытался изменить тип сеанса на “MATE” (что является рабочим окружением, которое я использую и на сервере, и на клиенте, и показано на скриншотах выше). С этим окно открывается, которое масштабируется до максимального доступного размера при разрешении рабочего стола клиента, и внутри я получаю рабочий стол клиента, показанный в точном размер пикселей, начиная с верхнего левого края (и верхняя панель масштабируется до размера этого окна) – и так я могу запускать программы и прекрасно видеть, что происходит.

То, что я не могу сказать в данный момент, это является ли это копией рабочего стола, который действительно работает – или это новая сессия для того же пользователя (вероятно новая, pyhoca-cli --list-desktops --server 192.168.0.100 после этого перечисляет две сессии вместо одной); по крайней мере, для некоторых программ, которые я использую, это не имеет значения, так что это решило для меня проблему нечитаемого разрешения (по крайней мере частично на данный момент). Обратите внимание также, что после закрытия соединения X2GoClient GUI – когда вы открываете Предпочтения сессии/Тип сеанса в следующий раз, он (как сказано в связанном посте):

автоматически изменяется на “Пользовательский рабочий стол” с командой “MATE”

Я полагаю, что эквивалентом этого в командной строке является создание новой сессии:

pyhoca-cli --server 192.168.0.100 --username myuser --new --command MATE

… и как только новая сессия создана, после закрытия окна (обратите внимание, что если вы нажмете CTRL+C на pyhoca-cli, это также закроет окно, и это не удалит сессию, а вместо этого приостановит сессию) и захотите снова подключиться, вам не нужно повторно создавать новую сессию. Сначала подтвердите, что сессия существует, с помощью:

pyhoca-cli --username myuser --list-sessions --server 192.168.0.100

… или, альтернативно, перечислите рабочие столы:

pyhoca-cli --username myuser --list-desktops --server 192.168.0.100

… и тогда вы можете возобновить сессию вместо этого (обратите внимание, что требуется имя сессии, а не имя рабочего стола; но имена сессий OLDEST и NEWEST также могут быть использованы):

pyhoca-cli --username myuser --server 192.168.0.100 --resume NEWEST

… или, скорее, вы могли бы, если бы не было этой ошибки #1445 – pyhoca-cli не может подключиться к приостановленной сессии x2go – Логи отчетов об ошибках X2Go, которая, по всей видимости, исправлена в pyhoca-cli 0.6.1.3, однако мой Ubuntu 20.04 все еще имеет 0.6.1.2.

И, наконец, чтобы разрушить/убить/стереть сессию, используйте --terminate (которая также принимает ALL):

pyhoca-cli --username myuser --server 192.168.0.100 --terminate ALL

Ответ или решение

X2Go и работа с командной строкой

X2Go – это мощное средство удаленного доступа, позволяющее пользователям подключаться к графическим рабочим столам Linux через протокол SSH. Он часто используется как более эффективная альтернатива VNC благодаря своим возможностям, таким как сжатие данных и поддержка звука. Ниже приводится подробное инструктаж по работе с X2Go на Ubuntu 20.04 с рабочим окружением MATE, включая использование командной строки для управления сервером и клиентом X2Go, а также ответы на ваши специфические вопросы.

1. Активация и деактивация общего доступа к рабочему столу через командную строку

Для управления доступом к рабочему столу на сервере X2Go вы можете использовать утилиту командной строки x2goserver. Ваша цель – включить или выключить режим совместного доступа к рабочему столу с сервера, который вы контролируете через SSH.

Для активации общего доступа выполните:

sudo service x2goserver start

Для деактивации общего доступа:

sudo service x2goserver stop

Если вам нужно изменить настройки, то вы можете редактировать конфигурационные файлы X2Go. Обычно они находятся в /etc/x2go/x2goserver.conf. Здесь вы можете указать дополнительные параметры, касающиеся компьютеров-клиентов и уровня доступа.

2. Подключение к X2Go с командной строки

На данный момент доступно несколько способов подключения к X2Go через командную строку. Как вы уже отметили, pyhoca-cli является отличной альтернативой для работы с сессиями X2Go.

Пример использования pyhoca-cli:

  1. Сначала запустите сервер и проверьте доступные десктопы:
pyhoca-cli --server 192.168.0.100 --username myuser --list-desktops
  1. После получения доступных сессий вы сможете подключиться к одной из них:
pyhoca-cli --server 192.168.0.100 --share-desktop myuser@:0 --user myuser --share-mode 1

3. Режимы отображения: масштабирование и панорамирование

В X2Go отсутствует явная функция изменения режима отображения рабочего стола в виде «cutout» или «осуществления автоматического панорамирования», как вы описывали в VNC. Однако, вы можете управлять размерами окон с помощью параметров сессии.

При создании новой сессии можно задать размер вручную, что поможет вам избежать масштабирования. Запустите следующую команду:

pyhoca-cli --server 192.168.0.100 --username myuser --new --command "MATE" --geometry 800x600

Этот пример создаст новую сессию MATE с разрешением 800×600. Вы можете вариировать разрешение в зависимости от ваших целей.

4. Управление сессиями через pyhoca-cli

Для управления уже существующими сессиями вы должны использовать команду --list-sessions:

pyhoca-cli --username myuser --server 192.168.0.100 --list-sessions

Затем, чтобы вернуться к существующей сессии, можете использовать:

pyhoca-cli --username myuser --server 192.168.0.100 --resume <session_name>

Для завершения сессии используйте:

pyhoca-cli --username myuser --server 192.168.0.100 --terminate ALL

Выводы

X2Go предлагает множество функций для управления удаленными сессиями на серверах Ubuntu, а возможность работы через командную строку делает его мощным инструментом для системных администраторов. С помощью описанных выше команд вы сможете эффективно активировать общий доступ, управлять сессиями и решать проблемы с отображением. В случае возникновения дополнительных вопросов или необходимости в более детальных инструкциях, вы всегда можете обратиться к документации X2Go или воспользоваться общедоступными ресурсами сообщества.

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

Капча загружается...