DataLife Engine / Удаленный доступ к Ubuntu 22.04: Полное руководство по настройке рабочего стола из любой точки мира

Удаленный доступ к Ubuntu 22.04: Полное руководство по настройке рабочего стола из любой точки мира

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

В этой статье я покажу, как включить удаленный рабочий стол в Ubuntu 22.04, 23.04 или 23.10. Текущая реализация удаленного рабочего стола имеет некоторые ограничения из-за Wayland, но она вполне пригодна для использования.


Содержание статьи

Что нужно знать?

Исторически существует два наиболее популярных протокола удаленного рабочего стола: VNC и RDP.

В Ubuntu есть несколько различных инструментов, реализующих эти протоколы, например x11vnc, realvnc, xrdp и т. д. Все эти серверы и клиенты работают с Xorg. Однако в настоящее время большинство дистрибутивов переходят на протокол дисплейного сервера Wayland вместо Xorg. Это новый протокол с другой архитектурой, поэтому большинство инструментов Xorg не совместимы с Wayland.

На данный момент единственным способом использования удаленного рабочего стола в Ubuntu и Wayland через локальную сеть является служба Gnome Remote Desktop, или G-R-D. Сокращение по первой букве каждого слова в названии сервиса широко используется разработчиками GNOME, и я буду использовать его в этой статье. Этот сервис позволяет вам делиться экраном по протоколу RDP, используя бэкенд FreeRDP. Он не поддерживает все функции, которые были доступны в устаревших инструментах, но он по-прежнему активно развивается.

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

В любом случае, эта служба предоставляется нативно в GNOME, так что вам не нужно устанавливать дополнительные инструменты, и вы можете получить удаленный доступ к рабочему столу Ubuntu как из Windows, так и из Linux, поскольку служба использует протокол RDP, совместимый с Microsoft RDP.

Как включить удаленный рабочий стол в Ubuntu 22.04 GUI

Управлять настройками удаленного рабочего стола можно с помощью приложения Ubuntu Settings или инструмента grdctl в командной строке. Однако первое включение лучше выполнить с помощью графического интерфейса, поскольку необходимо создать ключи для FreeRDP, а в графическом интерфейсе это сделать гораздо проще, чем в командной строке.

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

Откройте Settings -> Sharing -> Remote Desktop.

Удаленный доступ к Ubuntu 22.04: Полное руководство по настройке рабочего стола из любой точки мира

Затем включите переключатели Remote Desktop и Remote Contol:

Удаленный доступ к Ubuntu 22.04: Полное руководство по настройке рабочего стола из любой точки мира

В разделе Authentication вы можете просмотреть или изменить имя пользователя и пароль:

Удаленный доступ к Ubuntu 22.04: Полное руководство по настройке рабочего стола из любой точки мира

2. Проверка состояния службы G-R-D

После этого вы можете убедиться, что служба gnome-remote-desktop запущена, выполнив следующую команду:

systemctl status --user gnome-remote-desktop
Удаленный доступ к Ubuntu 22.04: Полное руководство по настройке рабочего стола из любой точки мира

А затем убедитесь, что служба ожидает подключения на порту 3389:

ss -tulpn | grep 3389
Удаленный доступ к Ubuntu 22.04: Полное руководство по настройке рабочего стола из любой точки мира

3. Установка расширения Allow Locked Remote Desktop Extension

Если сессия заблокирована, вы не сможете к ней подключиться. Чтобы исправить это, можно установить расширение Allow Locked Remote Desktop.

Удаленный доступ к Ubuntu 22.04: Полное руководство по настройке рабочего стола из любой точки мира

4. Включение автоматического входа

Вы не сможете удаленно подключиться, если нет активных пользовательских сессий. Пока эта функция не появится в Gnome, все, что вы можете сделать, это включить автологин. Откройте приложение Settings, перейдите в раздел Пользователи и нажмите Unlock:

Удаленный доступ к Ubuntu 22.04: Полное руководство по настройке рабочего стола из любой точки мира

Затем введите пароль и включите переключатель Automatic Login:

Удаленный доступ к Ubuntu 22.04: Полное руководство по настройке рабочего стола из любой точки мира

Теперь вы можете подключиться к своему ПК с удаленного компьютера, используя логин и пароль.

5. Установка пустого пароля для связки ключей

Gnome Remote Desktop хранит логин и пароль для удалённого входа в GNOME Keyring. Если у вас включён автоматический вход, то GNOME Keyring не будет разблокирован, следовательно данные входа будут не доступны и G-R-D не сможет принимать подключения. Для того чтобы это исправить откройте главное меню и запустите утилиту SeaHourse. Ещё она может называться Passwords and Keys:

Удаленный доступ к Ubuntu 22.04: Полное руководство по настройке рабочего стола из любой точки мира

Откройте контекстное меню для пункта Login и выберите Change Password:

Удаленный доступ к Ubuntu 22.04: Полное руководство по настройке рабочего стола из любой точки мира

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

Удаленный доступ к Ubuntu 22.04: Полное руководство по настройке рабочего стола из любой точки мира

На следующем шаге нажмите Enter для того чтобы пароль остался пустым:

Удаленный доступ к Ubuntu 22.04: Полное руководство по настройке рабочего стола из любой точки мира

После этого подтвердите что действительно хотите оставить пароль пустым, и повторите всё выше перечисленное для Default Keyring если такой пункт у вас есть. Теперь вы можете подключится к своему ПК удалённо используя настроенные ранее логин и пароль.

6. Изменение пароля в командной строке

Пароль для удаленного рабочего стола создается случайным образом. Это очень удобно, если вы хотите предоставить кому-то доступ к своему компьютеру, чтобы помочь вам решить какую-то проблему и т. д. Но если вы хотите использовать функцию удаленного рабочего стола для доступа к вашему удаленному серверу, вам нужно иметь возможность изменить пароль в командной строке. И это возможно с помощью команды grdctl. Команда имеет следующий синтаксис:

grdctl options command

Например, вы можете получить текущее состояние с помощью команды status:

grdctl status

Для просмотра текущего имени пользователя и пароля запустите команду grdctl с опцией --show credentials:

grdctl status --show-credentials
Удаленный доступ к Ubuntu 22.04: Полное руководство по настройке рабочего стола из любой точки мира

Также вы можете установить пароль с помощью grdctl через SSH. Например:

grdctl rdp set-credentials losst new_password
Удаленный доступ к Ubuntu 22.04: Полное руководство по настройке рабочего стола из любой точки мира

После этого вы сможете удаленно подключаться, используя пароль "new_password".

Как включить удаленный рабочий стол в командной строке (альтернативный способ)

Вы можете настроить Gnome Remote Desktop в командной строке. Однако вам все равно понадобится запущенная сессия GNOME. Я нашел этот метод на Reddit и добавил некоторые изменения. Тем не менее, вы можете проверить оригинальный пост здесь, если что-то изменилось. Все команды в этом разделе предназначены для выполнения через SSH.

1. Включение автоматиченского входа

Если нет активных сессий, можно включить автологин в /etc/gdm3/custom.conf. Здесь вам нужно установить true в AutomaticLoginEnable, а затем указать своего пользователя в опции AutomaticLogin. Например, если ваше имя пользователя losst, конфигурация будет выглядеть следующим образом:

AutomaticLoginEnable = true AutomaticLogin = losst

2. Разблокировка сессии

После этого вы можете перезагрузить ваш удаленный сервер и затем снова войти в систему с помощью SSH. Список активных сессий можно получить с помощью следующей команды:

sudo loginctl list-sessions
Удаленный доступ к Ubuntu 22.04: Полное руководство по настройке рабочего стола из любой точки мира

Если сессия заблокирована, ее необходимо разблокировать. В предыдущем примере сессия пользователя с именем losst находится на TTY2 и имеет ID 1:

sudo loginctl unlock-session 1

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

sudo loginctl show-session 1 | grep Locked
Удаленный доступ к Ubuntu 22.04: Полное руководство по настройке рабочего стола из любой точки мира

3. Разблокировка Gnome Keyring

Gnome Remote Deskop хранит пароли в Gnome Keyring. Поэтому перед выполнением любых команд, связанных с удаленным рабочим столом, его необходимо разблокировать. Сначала остановите gnome-keyring-daemon, запущенный с помощью systemd:

systemctl --user stop gnome-keyring-daemon

Ещё вы можете остановить все запущенные процессы этого сервиса с помощью killall:

killall -TERM -u "$(whoami)" gnome-keyring-daemon

Затем, выполните следующую команду, введите свой пароль, и нажмите два раза сочетание клавиш Ctrl+D:

gnome-keyring-daemon --unlock

Или же вы можете передать пароль с помощью echo:

echo -n "password" | gnome-keyring-daemon --unlock

После этого вы можете убедится что связка ключей разблокирована с помощью busctl:

busctl --timeout=10 --user get-property org.freedesktop.secrets /org/freedesktop/secrets/collection/login org.freedesktop.Secret.Collection Locked
Удаленный доступ к Ubuntu 22.04: Полное руководство по настройке рабочего стола из любой точки мира

Команда должна вывести false если всё прошло успешно. Если вы ввели пароль неверно, то в файле /var/log/auth.log появится сообщение об ошибке:

Удаленный доступ к Ubuntu 22.04: Полное руководство по настройке рабочего стола из любой точки мира

Однако здесь есть неочевидный баг. Команда gnome-keyring-daemon с опцией --unlock предназначена для использования во время автоматического входа в систему. И если она получает неверный пароль, то думает что это новый пароль вашего пользователя. Поэтому при следующей разблокировке связки ключей, пароль автоматически будет изменен на новый, для того чтобы соответствовать паролю пользователя. В данном случае будет установлен тот самый неверный пароль. И в результате вы больше не сможете разблокировать связку ключей старым паролем. Для того чтобы это исправить удалите все файлы в ~/.local/share/keyring, перезапустите g-k-d или перезагрузите систему и выполните команды описанные выше снова. Поскольку связки ключей нет, будет создана новая и для неё будет использован пароль, который вы введете. Но эти действия удалят все пароли которые были сохранены.

Обратите внимание, что это только первая разблокировка. Если вы хотите чтобы удаленнй стол работал после перезагрузки, установите пустой пароль для gnome-keyring после входа в графический интерфейс.

3. Создание сертификатов FreeRDP

Gnome Remote Desktop использует FreeRDP в качестве бэкенда, которому для корректной работы необходимы сертификаты. Давайте создадим эти сертификаты:

mkdir certs && cd certs openssl genrsa -out rdp-tls.key 4096 openssl req -new -key rdp-tls.key -subj "/C=US" | openssl x509 -req -days 730 -signkey rdp-tls.key -out rdp-tls.crt
Удаленный доступ к Ubuntu 22.04: Полное руководство по настройке рабочего стола из любой точки мира

После этого переместите сертификаты в .local/share/gnome-remote-desktop/, который находится в домашней директории вашего пользователя. Например:

mkdir -p /home/losst/.local/share/gnome-remote-desktop/ mv rdp-tls.key rdp-tls.crt /home/losst/.local/share/gnome-remote-desktop/

4. Настройка G-R-D

На данный момент вы готовы к настройке Gnome Remote Desktop. Сначала проверьте статус службы:

grdctl status
Удаленный доступ к Ubuntu 22.04: Полное руководство по настройке рабочего стола из любой точки мира

Затем добавьте сертификаты:

grdctl rdp set-tls-cert /home/losst/.local/share/gnome-remote-desktop/rdp-tls.crt grdctl rdp set-tls-key /home/losst/.local/share/gnome-remote-desktop/rdp-tls.key

Затем задайте имя пользователя и пароль, которые будут использоваться для удаленного входа:

grdctl rdp set-credentials losst password

Эта команда может зависнуть и ничего не сделать. Это может означать, что gnome-keyring не разблокирован, и команда ждет, пока пользователь не введет пароль в графическом интерфейсе. В этом случае следует вернуться к шагу 3 и разблокировать gnome-keyring.

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

grdctl rdp disable-view-only

И, наконец, включите rdp:

grdctl rdp enable

5. Запуск службы G-R-D

Теперь вы знаете, как включить удаленный рабочий стол Ubuntu в командной строке. После этого нужно добавить службу g-r-d systemd в автозапуск и убедиться, что она запущена:

systemctl --user enable gnome-remote-desktop.service systemctl --user start gnome-remote-desktop.service

Затем можно проверить состояние службы:

systemctl --user status gnome-remote-desktop.service
Удаленный доступ к Ubuntu 22.04: Полное руководство по настройке рабочего стола из любой точки мира

Также вы можете проверить состояние и учетные данные RDP с помощью grdctl:

grdctl status --show-credentials
Удаленный доступ к Ubuntu 22.04: Полное руководство по настройке рабочего стола из любой точки мира

Теперь вы можете подключиться к своему ПК удаленно, чтобы убедиться, что удаленный режим рабочего стола Ubuntu 22.04 работает хорошо. Кроме того, не забудьте установить расширение "Allow Locked Remote Desktop" с сайта расширений в графическом интерфейсе.

Как подключиться к удаленному рабочему столу в Linux

Когда ваш удаленный рабочий стол настроен, вы можете подключиться к нему с помощью любого RDP-клиента. Например, Reminna или Connections. Если вы хотите использовать Connections, откройте приложение и нажмите на кнопку Plus:

Удаленный доступ к Ubuntu 22.04: Полное руководство по настройке рабочего стола из любой точки мира

Затем введите IP-адрес удаленного компьютера, выберите протокол RDP и нажмите Connect:

Удаленный доступ к Ubuntu 22.04: Полное руководство по настройке рабочего стола из любой точки мира

Затем введите имя пользователя и пароль, указанные ранее:

Удаленный доступ к Ubuntu 22.04: Полное руководство по настройке рабочего стола из любой точки мира

Здесь показано, как выглядит удаленный рабочий стол:

Удаленный доступ к Ubuntu 22.04: Полное руководство по настройке рабочего стола из любой точки мира

При наличии подключенных пользователей вы увидите уведомление в правом верхнем углу панели:

Удаленный доступ к Ubuntu 22.04: Полное руководство по настройке рабочего стола из любой точки мира

Как зайти на удаленный рабочий стол в Windows

Ну а теперь давайте рассмотрим, как подключиться к удаленному рабочему столу Ubuntu из Windows. С помощью поиска в левом нижнем углу найдите приложение Remote Desktop Connection и откройте его:

Удаленный доступ к Ubuntu 22.04: Полное руководство по настройке рабочего стола из любой точки мира

Введите IP-адрес вашего удаленного компьютера:

Удаленный доступ к Ubuntu 22.04: Полное руководство по настройке рабочего стола из любой точки мира

Введите логин и пароль, выбранные ранее:

Удаленный доступ к Ubuntu 22.04: Полное руководство по настройке рабочего стола из любой точки мира

Примите сертификат RDP от удаленного сервера:

Удаленный доступ к Ubuntu 22.04: Полное руководство по настройке рабочего стола из любой точки мира

Теперь вы подключены к удаленному ПК:

Удаленный доступ к Ubuntu 22.04: Полное руководство по настройке рабочего стола из любой точки мира

Как сбросить настройки Gnome Remote Desktop

Если что-то пошло не так и вы хотите сбросить настройки удаленного рабочего стола и попробовать снова, отключите RDP:

grdctl rdp disable

Очистите учетные данные:

grdctl rdp set-credentials "" ""

Затем удалите сертификаты RDP:

gsettings set org.gnome.desktop.remote-desktop.rdp tls-cert "" gsettings set org.gnome.desktop.remote-desktop.rdp tls-key ""

Выводы

В этой статье я показал, как включить удаленный рабочий стол в Ubuntu с Wayland с помощью службы Gnome Remote Desktop. Она работает очень хорошо, и я надеюсь, что в скором времени она будет улучшена и получит возможность запускать новые пользовательские сессии.

12-10-2025, 19:01
Вернуться назад