Удаленное управление компьютером windows из linux

Время на прочтение
6 мин

Количество просмотров 64K

Что делать, если нужно получить удалённый доступ к серверу или десктопу Linux? Или подключиться к Windows-машине с Linux-десктопа? Какие клиенты RDP и FTP подходят лучше всего под Debian и Red Hat / CentOS? Интересно посмотреть, что нового появилось в последнее время.

Как известно, Remote Desktop Protocol (RDP) — проприетарный протокол Microsoft для удалённого управления десктопом. Ориентирован на передачу по сети графического интерфейса и всех функций управления.

Хотя протокол выпустила Microsoft, к настоящему моменту создано множество свободных серверов и клиентов RDP с открытым исходным кодом, под свободной лицензией и для всех операционных систем. В последние годы появились достойные серверы RDP под Linux, хотя раньше хосты всегда работали под Windows, а под Linux выпускались только клиенты. Однако к 2022 году ситуация сильно изменилась, так что стали возможно и противоположные сценарии.

Выбор сервера и клиента зависит от операционной системы хоста. RDP-сессия устанавливается между клиентом и сервером. Соответственно, для серверной и клиентской части RDP и FTP существуют разные инструменты, в том числе доступные в репозиториях Debian, Red Hat, CentOS и др.

Сервер RDP под Linux

В современных системах GNOME — сервер RDP уже интегрирован, но там много чего не хватает, так что приходится пока использовать сторонние решения. Судя по всему, сервер RDP в GNOME пока не доработан до окончательного вида. По крайней мере, там отсутствуют некоторые важные функции. Руководство по использованию и планы на доработку программы см. здесь.

▍ xRDP

Неплохой вариант для Linux-сервера — xRDP. Последняя версия 0.9.20 вышла 15 сентября 2022 года.

Эта программа специализируется на управлении Linux-десктопом по RDP, при этом xRDP как бы мимикрирует под Windows-систему, нативную для данного протокола.

Предполагается, что клиенты — это обычно системы под Windows, мобильные устройства или дешёвые RDP-терминалы типа Wyse Winterm (на Windows CE), которые можно дёшево купить б/у на «Авито» или найти списанные вообще бесплатно.


Старый терминал WYSE-530 Winterm S30 на процессоре AMD Geode 366 МГц (ноябрь 2008)

Поднимаете RDP-сервер под Linux с десятком X-сессий — и практически без усилий получаете сеть из десятка компьютеров, которые могут вводить информацию на сервер. Это просто пример, как использовать RDP-клиенты под Windows для доступа к Linux-серверу.

xRDP обеспечивает удалённый доступ по Microsoft Remote Desktop Protocol (RDP) и принимает соединения по порту 3389/tcp от следующих RDP-клиентов:

  • FreeRDP.
  • rdesktop.
  • KRDC.
  • NeutrinoRDP.
  • Windows MSTSC (Microsoft Terminal Services Client, она же mstsc.exe).
  • Microsoft Remote Desktop (есть Microsoft Store, отличается от MSTSC).

Некоторые из этих клиентов доступны только на определённых ОС, например, только на Windows. Другие поддерживают более широкий список платформ, включая Linux, MacOS, iOS и/или Android.

xRDP поддерживает повторные подключения к прерванной сессии, изменение размера дисплея, функцию RDP/VNC-прокси (подключение к другому серверу RDP/VNC через xrdp), двусторонний буфер обмена между хостом и клиентом, в том числе передачу через него туда и обратно текста, изображений и файлов, перенаправление аудиопотока и микрофона (требует сборки дополнительных модулей), перенаправление дисков (монтирование локальных клиентских дисков на удалённой машине).

В большинство популярных дистрибутивов включены последние версии пакетов xrdp и xorgxrdp, они есть также в Debian и CentOS.

▍ Установка на Ubuntu / Debian

apt install xrdp

▍ Установка на RedHat / CentOS / Fedora

На RedHat / CentOS сначала нужно активировать пакеты EPEL:

yum install epel-release

Потом можно установить xrdp

yum install xrdp

ogon

Один из многочисленных альтернативных вариантов сервера RDP под Linux — проект ogon. Это набор инструментов на C/C++, которые предоставляют удобный GUI для удалённого десктопа по RDP. Проект поддерживает большинство современных расширений протокола RDP, кодеки сжатия растровых изображений, отключение и повторное подключение к сессиям, перенаправление устройств.

Сервер совместим практически со всеми существующими клиентами RDP, сессии можно устанавливать через приложение X11, Weston или QT. Благодаря модульной конструкции, сервер легко расширяется, в него можно добавить новые функции или новые бэкенды. Ставится на Debian, CentOS и т. д.

xpra

Известный сервер под Linux с терминальными GUI-сессиями (экран для X11) — xpra. Во многом работает как xRDP, хотя и не поддерживает RDP. Но мы решили помянуть его здесь для сравнения с решениями на RDP и VNC.

Тут встроенный HTML5-клиент, аппаратное ускорение графики, поддержка множества пользователей, GUI для настройки, синхронизация клавиатуры и буфера обмена, перенаправление принтера, курсора, звука, системных уведомлений, поддержка IPv6, SSL, десктопный режим и проч.

Официальные стабильные сборки:

  • Microsoft Windows: EXE, ZIP, MSI
  • MacOS: DMG, PKG
  • Linux: RPM, DEB

Клиенты RDP и FTP под Linux

Пожалуй, лучшие клиенты RDP под Debian — это Remmina и Apache Guacamole, хотя есть и другие варианты.

Remmina

Remmina — клиент RDP по умолчанию в некоторых дистрибутивах, в том числе в Ubuntu. Это одна из самых удобных и функциональных программ для удалённой работы, поддерживает RDP, SSH, SPICE, VNC, X2Go, HTTP/HTTPS.

В июне 2022 вышла последняя версия 1.4.27 с исправлением ошибок и рядом не самых существенных изменений вроде новых цветовых схем для SSH.

Некоторые из основных функций Remmina, которые можно настраивать на стороне клиента RDP:

  • Запоминание последнего режима просмотра для каждого соединения.
  • Конфигурация двойным щелчком.
  • Качество масштабирования.
  • Размер шага автоматической прокрутки.
  • Максимальное количество последних элементов.
  • Нажатия клавиш.
  • Папка для скриншотов.
  • Предотвращение попадания скриншотов в буфер обмена.
  • Настройка разрешения экрана.
  • Конфигурация вкладок.
  • Видимость панели инструментов.
  • Режим просмотра по умолчанию.
  • Настройка поведения в полноэкранном режиме.
  • Строка поиска в главном окне.
  • Установка горячих клавиш для хоста: включение полноэкранного режима, автоподгонка окна, переключение страниц вкладок, переключение режима масштабирования, захват клавиатуры, минимизировать окно, показать/скрыть панель инструментов, сделать скриншот, режим просмотра.
  • Локальный порт SSH-туннеля.
  • Парсинг ~/.ssh/config.
  • Логи SSH.
  • Выбор шрифта терминала.
  • И др.

В наборе плагинов есть SFTP для защищённой передачи файлов.

Из специфических настроек RDP — установка глубины цвета, качества передачи видео и звука, редирект локального микрофона, подключение консоли, распознавание сервера через Remote Desktop Gateway, возможность отключить автоматические реконнекты, синхронизацию буфера обмена и некоторых других функций.

Remmina входит в состав большинства популярных дистрибутивов, включая Debian 11:

В старых версиях Debian для установки Remmina можно скопировать строки в консоль:

echo 'deb http://ftp.debian.org/debian stretch-backports main' | sudo tee --append /etc/apt/sources.list.d/stretch-backports.list >> /dev/null
sudo apt update
sudo apt install -t stretch-backports remmina remmina-plugin-rdp remmina-plugin-secret remmina-plugin-spice

Сразу после установки предлагается сделать Remmina клиентом RDP по умолчанию:

Инструкции по установке для всех систем см. на этой странице, а руководство по сборке из исходников — в справочном вики.

На CentOS есть вариант установки из репозитория EPEL, вставив в консоль следующие строчки:

wget http://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
rpm -ivh epel-release-latest-7.noarch.rpm

В качестве альтернативы — Remmina устанавливается через универсальный пакет Flatpak, который работает буквально на всех дистрибутивах:

flatpak remote-add --user --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
# In order to have H.264 codecs
flatpak install org.freedesktop.Platform
flatpak install org.freedesktop.Platform.openh264
flatpak install --user flathub org.remmina.Remmina
flatpak run --user org.remmina.Remmina

Apache Guacamole

Apache Guacamole (HTML5, в браузере) предоставляет доступ к хосту без клиента, то есть без инсталляции на компьютер клиентской части. Работает просто через браузер. Последняя версия 1.4.0 вышла 1 января 2022 года.

Понятно, что браузерный клиент имеет определённые преимущества, поскольку запускается абсолютно на любом устройстве, где есть браузер, независимо от операционной системы.

Более того, сам десктоп необязательно должен существовать физически, это может быть просто виртуальная машина на сервере.


Из других RDP и VNC-клиентов под Linux можно упомянуть Vinagre, Boxes, TightVNC (для доступа к Windows-хостам), FreeRDP (xfreerdp/wlfreerdp, пакет для Debian) и rdesktop.

Telegram-канал и уютный чат

На днях мне подарили старый ноутбук Compaq nc6120, старичок конечно, но в свое время за такой компьютер я бы многое отдал. Добавил я ему оперативки, переустановил Windows XP и установил на него нужный SEO софт. Этот ноутбук только и нужен мне для того, чтобы у меня была Windows XP и я мог на нём делать то, что не могу сделать в Линукс.

Но у ноутбука убитая клавиатура, да и пользоваться двумя мышками не очень удобно. И вот я стал решать, как подключиться к Windows из Linux?

До этого все программы, которые не работают под Linux я запускал на виртуальной машине. Но виртуальная машина потребляет много ресурсов и мой ноутбук периодически из-за этого зависал. Идеальный вариант сейчас — это удалённо подключиться к Виндовс и вывести её рабочий стол на основной монитор. Тогда этот старый ноутбук можно запихнуть куда подальше и подключаться к нему дистанционно, через wifi, например.

Несколько лет назад я проделывал такие вещи и теперь нужно просто вспомнить всё. С чего начнём?

Как настроить удаленный рабочий стол?

Самое простое — это воспользоваться подключением к удалённому рабочему столу Windows. Для этого во тут (как на картинке) у вас должна быть поставлена галочка и включены все службы по умолчанию. Для этого щёлкаем по МОЙ КОМПЬЮТЕР правой кнопкой мыши, выбираем СВОЙСТВА. Затем переходим во вкладку УДАЛЁННЫЕ СЕАНСЫ. И ставим галочку напротив «Разрешить удалённый доступ к этому компьютеру».

Как подключиться к Windows из Linux

После этого нам нужно сделать так, чтобы IP адрес у нас был статический, а не динамический. Для этого сначала узнаём наш реальный адрес. Ищем в меню ПУСК вкладку ВЫПОЛНИТЬ и даём команду  cmd. Затем в появившемся терминале даём команду ipconfig.

подключиться к удалённому столу

Мой адрес, как можно видеть, 192.168.1.6, можно такой и сделать статическим. Для этого идём в сетевые подключения, и по значку БЕСПРОВОДНОЕ СЕТЕВОЕ ПОДКЛЮЧЕНИЕ щёлкаем правой кнопкой. Выбираем СВОЙСТВА. В появившемся окошке переходим во вкладку ОБЩЕЕ и выбираем протокол TCP/IP. Щёлкаем по нему и нажимаем кнопку СВОЙСТВА.

Теперь убираем ТОЧКУ с пункта ПОЛУЧИТЬ IP АДРЕС АВТОМАТИЧЕСКИ и переставляем его на ИСПОЛЬЗОВАТЬ СЛЕДУЮЩИЙ IP АДРЕС. Далее прописываем все, как у меня, учитывая только то, что основной IP адрес у вас может быть немного другой.

как подключиться к виндовс

Если вдруг вам не видно:

192.168.1.6

255.255.255.0

192.168.1.1

8.8.8.8

8.8.4.4

Ещё один важный момент: нужно задать пароль на пользователя admin — скорее всего он у вас один и вы под ним работаете. Если пароль уже стоит, то можно пропустить этот пункт. Если нет, задаём пароль, как это делать описывать не стану, кажется, что это не составит труда.

Как подключиться к Windows из Linux?

Все, с Windows закончили, осталось только установить нужную программу в Linux. Можно установить программу Vinagre, хотя есть и другие. Если она вас не устроит, то откройте Synaptic и в поиск введите слово RDP — протокол этой службы. Найдёте ещё с дюжину программ, которые делают то же самое.

Ну а мы установим эту программу, Vinagre:

sudo aptget install vinagre

После установки идём в МЕНЮ — ИНТЕРНЕТ — ПРОСМОТР УДАЛЁННЫХ РАБОЧИХ СТОЛОВ. Запускаем программу и вводим все, что необходимо: ip адрес, который мы до этого придумали, логин администратора (admin) и размер экрана.

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

Вот, появилось окно, вводим пароль и попадаем в Windows! Теперь можно работать сразу на двух компьютерах на одном мониторе. Очень похоже, как при работе на виртуальной машине, только теперь у меня ничего не зависнет :)

как подключиться к виндовс

Если у вас Windows 7 или 8, то можно все сделать то же самое. Но я до сих пор уверен, что Windows XP — это единственная нормальная OS у Майкрософт, с остальными даже бесплатно работать не хочу.

И ещё один момент: в программе вы заметите, что кроме RDP есть и другие протоколы, по которым можно подключиться к Windows — VNC и SSH. Эти протоколы лучше данного, но для подключения по ним нужен дополнительный софт в Windows. Даже больше скажу: нужно запустить VNC или SSH сервер. Я раньше это делал и как это реализовать знаю. Но об этом напишу как-нибудь в другой раз :)

А пока так же можете прочитать о том, как подключаться к Линуксу из Виндовс. Будут вопросы  — пишите в комментариях, всем отвечу ;)

Протокол RDP или Remote Desktop Protocol — это основной протокол удалённого доступа в операционных системах семейства Windows. В современных версиях Windows уже по умолчанию предустановлено всё необходимое программное обеспечение для обеспечения доступа к вашему компьютеру удалённо, а также для удалённого подключения к другим компьютерам с Windows.

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

1. Remmina

Для этой операционной системы существует не так много клиентов и это лучший клиент RDP для Linux. У программы есть удобный графический интерфейс, множество различных настроек, возможность сохранения ярлыков для быстрого подключения к удалённым узлам с нужными вам настройками. Но автоматически ярлыки не сохраняются, вам надо будет делать это вручную. Кроме протокола RDP поддерживается VNC и SSH. Программа разрабатывается в рамках проекта FreeRDP, с использованием библиотеки GTK. Есть порт на Qt. Разрабатывается достаточно активно и новые версии выходят раз в несколько месяцев. Для установки достаточно выполнить команду:

sudo apt install remmina

2. Gnome Connections

Это совсем новая утилита, разработка которой стартовала в начале 2020 года. Connections — очень простое приложение, сделанное специально для Gnome и предназначенное для управления удалёнными подключениями. Из протоколов поддерживаются RDP и VNC. В отличие от Remmina, настроек в утилите совсем нет, вы можете только указать адрес и порт компьютера, к которому надо подключится и включить или отключить масштабирование. И всё никаких настроек передачи звука, буфера обмена, захвата клавиш, разрешения экрана нет. Программа всё ещё находится в разработке, но её уже можно установить из Flathub:

flatpak install flathub org.gnome.Connections

А для запуска используйте команду:

flatpak run org.gnome.Connections

3. Vinagre

Это ещё одно приложение для Gnome, которое раньше позиционировалось как программа по умолчанию для управления удалёнными соединениями в Gnome. Настроек здесь уже немного больше, по сравнению с Connections, но всё ещё меньше, чем у Remmina. При подключении вы можете выбрать протокол, имя пользователя и разрешение экрана, а также надо ли масштабировать рабочий стол удалённой машины. Из протоколов поддерживается RDP, SSH, SPICE и VNC. Программа довольно простая и свою работу выполняет, но разрабатывается уже не очень активно. Установить в Ubuntu можно командой:

sudo apt install vinagre

4. Xfreerdp

С полностью графическими клиентами RDP для Linux мы закончили. Но есть ещё несколько использующих консольный интерфейс. Первая из них — xfreerdp. Настроек здесь ещё больше чем у Remmina, но задавать их все надо в командной строке. Поддерживается только протокол RDP. Программа достаточно активно разрабатывается и поддерживает все необходимые новшества протокола RDP. Для подключения к серверу используется опция /v. Например:

xfreerdp /v:ip_сервера:порт /u:имя_пользователя

Для установки программы в Ubuntu используйте команду:

sudo apt install freerdp2-x11

5. Rdesktop

Последняя в нашем списке консольная утилита rdesktop. Это самая первая реализация клиента RDP для Linux. В далёком 2009 году, проект FreeRDP был создан на основе форка Rdesktop. Сейчас проект почти не развивается, а с 2019 года ищет мэйнтейнера. И у программы есть ещё одна проблема. В новых версиях Windows компания Microsoft добавила новую авторизацию NLA (Network Level Authentication). Программа Rdesktop её не поддерживает, поэтому если вы захотите использовать её для подключения к Windows, эту технологию стоит отключить. Или же вы можете использовать любую другую программу из перечисленных выше. Чтобы подключится к удалённой машине надо просто передать её адрес программе:

rdesktop ip_адрес

Для установки rdesktop выполните:

sudo apt install rdesktop

Выводы

В этой статье мы разобрали лучшие программы для подключения по RDP из Linux, которые вы можете использовать для своей работы. Может некоторые из них не такие уже и лучшие, но других у нас нет. А каким клиентом пользуетесь вы? Напишите в комментариях!

Обнаружили ошибку в тексте? Сообщите мне об этом. Выделите текст с ошибкой и нажмите Ctrl+Enter.

Creative Commons License

Статья распространяется под лицензией Creative Commons ShareAlike 4.0 при копировании материала ссылка на источник обязательна .

Об авторе

Основатель и администратор сайта losst.ru, увлекаюсь открытым программным обеспечением и операционной системой Linux. В качестве основной ОС сейчас использую Ubuntu. Кроме Linux, интересуюсь всем, что связано с информационными технологиями и современной наукой.

Have you ever used the Windows app Remote Desktop Connection? This app, included in all Windows installations, allows you to remotely access another Windows PC or a server with Windows Server. For this purpose, it employs the Remote Desktop Protocol (RDP).

Organizations can install applications on a central server instead of various computers. To use those applications, employees must remotely access that server. Such centralization can make maintenance and troubleshooting easier. This technology was formerly known as Terminal Services (TS). Currently, web systems are more common. But, in some scenarios, Windows remote apps are still needed.

In those scenarios, Linux users can remotely access Windows computers and servers from their favorite system using an RDP client.

There are a few RDP clients available for Linux and we are going to talk about them today:

  1. Remmina
  2. FreeRDP
  3. rdesktop
  4. Vinagre

You can choose the one you like best or the one that best suits your needs.

Out of curiosity, FreeRDP is both an app and a library, which provides reusable features for other apps. Except for rdesktop, all of the other clients above use the FreeRDP library.

Enabling remote desktop on Windows

First of all, you must set up the computer you want to connect to so it allows remote connections. On the Windows machine you want to connect to, logged on with an administrator account, open the Start menu and click Settings. To do that, on the window that appears, open the System category, and then Remote Desktop. Finally, enable it:

Note that you can’t connect to computers running a Windows Home edition (for instance, Windows 10 Home). This screen informs you, if that is the case:

Your Home edition of Windows 10 doesn't support Remote Desktop.

Your Home edition of Windows 10 doesn’t support Remote Desktop.

Source of the image: Digital Citizen

If you want more information about remote desktop on Windows, take a look at:

  • How to use Remote Desktop — Windows Support
  • Remote Desktop — Allow access to your PC — Microsoft Docs

Remmina is a remote desktop client that supports many remote access protocols such as RDP, VNC, NX, XDMCP and SSH. It aims to be useful for system administrators and travellers, who need to work with lots of remote desktops and/or servers. Remmina is included in the Ubuntu Linux distribution and is its default remote desktop client.

To install Remmina on Linux Kamarada and openSUSE, run:

1
# zypper in remmina remmina-plugin-rdp

Once installed, to start Remmina, if you use the GNOME desktop environment, open the Activities menu, on the top-left screen corner, type remmina and click its icon:

To quickly start a remote access, select the RDP protocol, type the hostname or IP address of the computer you want to connect to (e.g. 10.0.0.251) and hit Enter:

If it’s the first time you connect to this computer, Remmina asks whether to trust its certificate, click Yes:

On the next screen, enter your User name and Password on the remote computer. Also inform the Domain, if necessary. Optionally, you can choose to Save password. Click OK:

You will see the remote computer’s desktop in the Remmina window:

From now on, you are using that computer, but remotely, without sitting in front of it. Each clicking and typing is sent to be processed on the remote computer.

If the remote computer is a Windows desktop, its screen is locked during remote access.

If you are going to access this computer often, consider saving the connection settings, so that remote access can be easily initiated. To do this, click the Create a new connection profile button on the top-left corner of the Remmina main window:

On the next screen, give a Name to identify the connection, select RDP in the Protocol field and enter the connection settings: Server, User name, User password and Domain (if necessary). When you’re finished, click Save:

After that, the connection becomes listed on the Remmina main window:

When you want to remotely access that computer, just double-click it on the list.

FreeRDP is a free implementation of the Remote Desktop Protocol following the Microsoft Open Specifications. This implementation provides both the client and the server applications as well as a library, which allows other applications to use the RDP protocol. Today, we are interested in the FreeRDP client application.

To install the FreeRDP client on Linux Kamarada and openSUSE, run:

The FreeRDP client does not have a main screen like Remmina. To start a remote access using the FreeRDP client, run this command from a terminal:

1
$ xfreerdp /v:hostname_or_ip_address /u:username

Making the appropriate substitutions. For example:

1
$ xfreerdp /v:10.0.0.251 /u:Kamarada

If you need to inform the computer’s domain, use the /d parameter:

1
$ xfreerdp /v:hostname_or_ip_address /d:domain /u:username

If it’s the first time you connect to this computer, the FreeRDP client asks whether to trust its certificate:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
[18:10:18:588] [3213:3214] [INFO][com.freerdp.client.common.cmdline] - loading channelEx cliprdr
[18:10:18:604] [3213:3214] [INFO][com.freerdp.crypto] - creating directory /home/linux/.config/freerdp
[18:10:18:604] [3213:3214] [INFO][com.freerdp.crypto] - creating directory [/home/linux/.config/freerdp/certs]
[18:10:18:604] [3213:3214] [INFO][com.freerdp.crypto] - created directory [/home/linux/.config/freerdp/server]
[18:10:18:613] [3213:3214] [ERROR][com.freerdp.crypto] - @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[18:10:18:613] [3213:3214] [ERROR][com.freerdp.crypto] - @           WARNING: CERTIFICATE NAME MISMATCH!           @
[18:10:18:613] [3213:3214] [ERROR][com.freerdp.crypto] - @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[18:10:18:613] [3213:3214] [ERROR][com.freerdp.crypto] - The hostname used for this connection (10.0.0.251:3389)
[18:10:18:613] [3213:3214] [ERROR][com.freerdp.crypto] - does not match the name given in the certificate:
[18:10:18:613] [3213:3214] [ERROR][com.freerdp.crypto] - Common Name (CN):
[18:10:18:613] [3213:3214] [ERROR][com.freerdp.crypto] - 	WinDev2003Eval
[18:10:18:613] [3213:3214] [ERROR][com.freerdp.crypto] - A valid certificate for the wrong name should NOT be trusted!
Certificate details:
	Subject: CN = WinDev2003Eval
	Issuer: CN = WinDev2003Eval
	Thumbprint: 23:7e:de:bc:85:d7:13:f3:e5:ce:e2:56:58:93:7d:f7:db:d1:bd:85
The above X.509 certificate could not be verified, possibly because you do not have
the CA certificate in your certificate store, or the certificate has expired.
Please look at the OpenSSL documentation on how to add a private CA to the store.
Do you trust the above certificate? (Y/T/N)

Type Y (yes) and hit Enter. Then type your user password on the remote computer and hit Enter:

1
2
3
4
5
Do you trust the above certificate? (Y/T/N) Y
Password:
[18:11:31:595] [3213:3214] [INFO][com.freerdp.gdi] - Local framebuffer format  PIXEL_FORMAT_BGRX32
[18:11:31:596] [3213:3214] [INFO][com.freerdp.gdi] - Remote framebuffer format PIXEL_FORMAT_RGB16
[18:11:32:782] [3213:3214] [INFO][com.winpr.clipboard] - initialized POSIX local file subsystem

After that, the remote desktop connection is initiated:

If you have ever started the remote desktop connection on Windows by the Command Prompt (using the mstsc command), you may have noticed that the FreeRDP client uses the same command syntax. It was implemented that way on purpose, to keep compatibility.

If you are a curious person and want to check it out by yourself:

  • on Windows, run:
  • on Linux, run:

rdesktop was the first RDP client for Linux and, for many years, it was the most used. But since November 2019, the project is looking for a new maintainer.

In contrast, FreeRDP was born in 2009 as a fork of rdesktop, when Microsoft decided to open the RDP specifications. As time passed and the FreeRDP project evolved, it became the standard RDP client on systems where no native Microsoft client is available.

I present rdesktop here for information purposes only. Unless you have a good reason to use it, you are advised to use one of the other RDP clients, based on FreeRDP.

To install rdesktop on Linux Kamarada and openSUSE, run:

Then, to start a remote access using rdesktop, invoke it from a terminal followed by the hostname or IP address of the computer you want to connect to. For example:

In the past, that would suffice and rdesktop would just work. But now we face a problem that comes from the lack of proper maintenance and updates:

1
2
3
Autoselected keyboard map en-us
ERROR: CredSSP: Initialize failed, do you have correct kerberos tgt initialized ?
Failed to connect, CredSSP required by server.

At some point, Microsoft released an Windows update that has since made the use of Network Level Authentication (NLA) required by default. FreeRDP does support NLA, while rdesktop does not. You can still use rdesktop for remote access, as long as you disable NLA on the computer you want to connect to. Note that this makes the connection less secure.

To disable NLA on the Windows machine you want to connect to, logged on with an administrator account, open the Control Panel, open the System and Security category, then click the System icon. On the next screen, click the Remote settings link by the left. On the dialog box that appears, select the Remote tab. Finally, disable the option Allow connections only from computers running Remote Desktop with Network Level Authentication and click OK:

With NLA disabled, back to the Linux computer that will start the remote access, try again:

This time, rdesktop will work. A window presents the Windows logon screen. Enter your username and password and press Enter to start the remote access:

If you want more information about that rdesktop bug, see:

  • CredSSP does not work — Issue #71 — rdesktop/rdesktop — GitHub
  • Add support for Network Level Authentication — Issue #279 — rdesktop/rdesktop — GitHub
  • Doesn’t work if there is Fortress machine between connecting to the remote server — Issue #261 — rdesktop/rdesktop — GitHub
  • Network Level Authentication (NLA) — rdesktop/rdesktop Wiki — GitHub

Vinagre is the default remote desktop client for the GNOME desktop. That’s why it is also the default remote desktop client for Linux Kamarada 15.1, the current stable release. Like Remmina, it supports some connection protocols: SSH, RDP, SPICE and VNC. However, like rdesktop, Vinagre is unmaintained for some time now.

When trying a RDP access, Vinagre only displays a black screen, as I reported on the openSUSE mailing list some time ago:

  • [opensuse-factory] Black screen when trying a RDP access to Windows 10 using Vinagre (Leap 15.1/15.2 and Tumbleweed)

On some distributions, like Debian, Vinagre works. I believe that those distributions applied some patch to Vinagre.

Probably, the next Linux Kamarada release will come with Remmina instead of Vinagre, following the Ubuntu Linux distribution.

Because of that, I present Vinagre here just for information purposes as well.

Vinagre comes already installed by default on Linux Kamarada and openSUSE, if you chose the GNOME desktop, but if you need or want to install it, you can do this by running:

To start Vinagre, which appears as Remote Desktop Viewer on the applications list, open the Activities menu, on the top-left screen corner, type remote or vinagre and click the corresponding icon:

On the Vinagre main screen, click Connect:

Fill in the next screen fields with the connection settings:

  • on the Protocol field, select RDP;
  • on the Host field, enter the hostname or IP address of the computer to connect to;
  • enter your Username on the remote computer; and
  • enter the Domain, if necessary.

When you are finished, click Connect.

If it’s the first time you connect to this computer, Vinagre asks whether to trust its certificate:

Tell it to do so by clicking Connect.

Enter your Password, optionally enable Remember this credential and click Authenticate:

At this point, you should see the remote computer’s desktop. You can notice it has its screen locked (as it normally does during RDP accesses). But, as I said, Vinagre only displays a black screen:

Like Remmina, Vinagre allows you to memorize the connection settings, to easily connect to the same computer again in the future. To do this, during the remote access, open the Bookmarks menu and click Add Bookmark.

After you created the bookmark, it will now be listed on the Bookmarks menu. When you want to remotely access this computer again, just open this menu and click the bookmark.

References

  • How to use Remote Desktop — Windows Support
  • Remote Desktop — Allow access to your PC — Microsoft Docs
  • Remote Graphical Sessions with VNC — Reference — openSUSE Leap 15.1
  • Hi! — The history of the FreeRDP project — FreeRDP

Since it’s not possible to remotely access computers running Windows 10 Home, to write this how-to I used a VirtualBox virtual machine with a Windows 10 Enterprise evaluation version legally downloaded from:

  • Download a Windows 10 virtual machine — Windows app development

Blog

RDP (сокращение «Remote Desktop Protocol») — это проприетарный протокол для доступа к удаленному рабочему столу. По умолчанию он установлен во все современные ОС линейки Windows, однако в качестве сервера может выступать и линукс-система с графическим интерфейсом и установленным пакетом xrdp. В рамках этой статьи мы сосредоточимся на linux rdp клиентах и их настройке, а также рассмотрим основные принципы его работы.

Rdp Клиенты Удаленного Доступа Для Linux

Remote Desktop Protocol

RDP расположен на прикладном уровне сетевой модели OSI и работает на основе протокола транспортного уровня TCP. Схема его работы выглядит следующим образом:

  1. Устанавливается соединение с помощью TCP на транспортном уровне;
  2. Инициализируется сессия RDP;
  3. Аутентифицируется RDP-клиента и согласовываются параметры передачи данных;
  4. Реализуется сеанс удаленной работы: на RDP-клиент получает управление над сервером.

Сервер — это компьютер, К которому происходит удаленное подключение. RDP-клиент — приложение на компьютере, С которого происходит подключение. Во время сессии все вычислительные процессы лежат на плечах сервера. На RDP-клиент поступает графический интерфейс ОС сервера, которой RDP-клиент управляет с помощью устройств ввода. Графический интерфейс на RDP-клиент поступает в виде точной копии графического вывода ОС сервера или в виде графических примитивов (прямоугольники, круги, текст и т.п.) для экономии трафика. По умолчанию RDP использует порт 3389, но его можно поменять при необходимости.

Image3

Пример использования RDP — управление с linux удаленным рабочим столом Windows. Находясь в любой точке мира, вы можете подключиться к нему через интернет и работать, не задумываясь о производительности вашего RDP-клиента.

Изначально RDP появился в WIndows NT 4.0. По умолчанию этот протокол предустановлен во всех ОС линейки Windows. Однако реализация Linux remote desktop требует установки специального программного обеспечения.

Для обеспечения безопасности RDP-сессии используются два метода: внутренний и внешний.

Standart RDP Security — это внутренняя подсистема безопасности. Сервер генерирует ключи RSA и сертификат открытого ключа. Во время подключения RDP клиент получает их. В случае подтверждения проводится аутентификация.

Enhanced RDP Security — это метод обеспечения безопасности с помощью внешних средств. Существуют различные способы обеспечения защиты передаваемых данных, например, протокол TLS. 

Плюсы RDP

  • RDP непривередлив к сети: он может работать через VPN, NAT, по TCP или UDP. Поддерживает переадресацию и т.п. Также RDP устойчив к разрывам связи;
  • Для работы достаточно 300-500 кбит скорости;
  • Мощный сервер позволяет запускать на слабом RDP-клиенте тяжелые приложения;
  • Возможность сеанса подключения linux rdp to windows.

Минусы RDP

  • Использование приложений, требовательных к пингу (времени отклика), такие, как игры или просмотр видео, может быть затруднено;
  • Требование к стабильности сервера;
  • Передача данных (файлов, документов) между rdp-клиентом и сервером из-за скорости интернета может быть усложнена.

Настройка RDP-сервера на Windows

Наиболее распространенный сценарий использования RDP — подключение к выделенному Windows-серверу с компьютера, работающего под другой системой, например с помощью linux-клиента.

Выгодно арендовать выделенный сервер можно на timeweb.cloud

Чтобы сделать удаленный доступ с клиента в принципе возможным, необходимо правильно настроить целевое устройство. Сама настройка довольно простая — все должно работать «из коробки» во всех современных Windows системах (в большинстве редакций). Как уже упоминалось, rdp клиент windows также предустановлен в большинстве современных систем.

Сначала разрешаем подключение к компьютеру через RDP. Делается это во вкладке Удаленный доступ в Свойствах системы:

Image1

Также тут можно выбрать пользователей, у которых будет доступ (по умолчанию только у администратора). 

Не лишним будет проверить настройки брандмауэра, который может блокировать соединение. В некоторых системах профиль «Общий» и «Частный» для входящих подключений RDP по умолчанию выключен, и, если сервер не входит в домен, то RDP работать не будет. Поэтому переходим в Брандмауэр Windows->Разрешенные приложения и ставим необходимые галочки:

Image8

Если система находится за роутером, то возможно понадобится настройка портов. Сделать это можно через веб-интерфейс роутера в разделе Port Forwarding (зависит от модели роутера). Напомним, что RDP использует порт TCP 3389 по умолчанию.

RDP-клиенты для linux

rdesktop

Сайт: rdesktop.org

Rdesktop linux  — это свободный, легкий и надежный RDP-клиент (лицензия GPL), доступный для Linux, BSD и Microsoft Windows. Реализует большинство функций RDP 5: кеширование bitmap, сжатие и шифрование потоков, автоматическую аутентификацию, RemoteApp, NLA. Также поддерживает RDP 4.0, используемый в Windows NT 4.0 Terminal Server Edition и Windows 2000 Server.

Содержится в репозиториях многих дистрибутивов, так что скачать и установить ubuntu rdp client или debian rdp client можно с помощью пакетного менеджера. Например, в Ubuntu это делается командой:

sudo apt install rdesktop

Подключение и настройка происходит полностью в командной строке. Формат rdp команды:

rdesktop [опция] сервер[:порт] 

Опции:

  • -u — логин юзера удаленной машины;
  • -p — пароль юзера удаленной машины;
  • -f — запуск в полноэкранном режим;
  • -g — в окне с разрешением (WIDTHxHEIGHT).

Остальные ключи можно посмотреть в man.

Подключение к Windows Server 2012 с помощью rdesktop

remmina

Сайт: remmina.org 

Remmina linux — программа-клиент удаленного рабочего стола с графическим интерфейсом, написанная на GTK+. Идет под лицензией GPL. Помимо RDP, remmina работает также с протоколами VNC, NXM XDMCP, SPICE, X2Go и SSH.

Одной из главных особенностей является расширение возможностей с помощью плагинов, например добавление поддержки новых протоколов. Поэтому при базовой установке в настройках remmina вы не найдете RDP. Для этого нужно установить дополнительный плагин (пакет freerdp). После этого перезагрузите программу, и RDP станет доступным из меню.

Для добавления нового соединения нажмите выделенную кнопку:

Image2

Далее откроется окно с настройкой подключения. Здесь раскрывается еще один плюс Remmina — возможность гибкой настройки (скорость и качество отображения, фоновый рисунок, горячие клавиши, темы оформления, анимации и т.д.). Не волнуйтесь, для обычного подключения вам нужно знать лишь данные пользователя удаленной машины и IP-адрес:

Image5

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

Image6

Если возникла необходимость запуска remmina на windows, то на официальном сайте есть соответствующий гайд.

FreeRDP

Сайт: freerdp.com 

FreeRDP — форк проекта rdesktop, распространяемый под лицензией Apache. В отличие от своего прародителя, который в последний раз обновлялся в 2019 году, FreeRDP активно поддерживается создателями.

FreeRDP является терминальным клиентом. Запуск и настройка происходят полностью в командной строке. Структура команды и ключи практически такие же, как и у rdesktop, например:

xfreerdp -u USERNAME -p PASSWORD -g WIDTHxHEIGHT IP

С помощью этой команды происходит подключение к серверу по адресу IP под именем USERNAME с паролем PASSWORD с отображением рабочего стола в окне:

Подключение c помощью freerdp

Apache Guacamole

Сайт: guacamole.apache.org

Самый простой и при этом самый сложный вариант удаленного управления linux. Простой, потому что не нужно никаких программ, сервисов и клиентов — все работает прямо в браузере. Сложный, потому что для функционирования требуется один раз установить и сконфигурировать сервер.

Apache Guacamole — это клиентский шлюз для удаленного подключения, работающий на HTML5. Он позволяет использовать целый набор протоколов удаленного доступа: Telnet, SSH, VNC, RDP — через веб-интерфейс. Документация по установке и конфигурации сервиса очень внушительна, однако на просторах Интернета есть множество готовых скриптов, которые автоматически помогут сделать базовую конфигурацию.

Скачиваем скрипт установки:

wget https://git.io/fxZq5 -O guac-install.sh

Делаем файл исполняемым:

chmod +x guac-install.sh

Запускаем:

./guac-install.sh

После установки скрипт выдаст адрес для подключения и пароль. Чтобы подключиться к серверу Windows через RDP, в панели администрирования заходим в «Настройки», выбираем «Подключения» и создаем новое:

Image7

Так как для RDP нужно знать лишь данные пользователя на удаленной машине и IP-адрес, вводим минимально нужное количество информации:

Image11

Теперь на главной странице доступно настроенное подключение, через которое мы можем получить удаленный рабочий стол:

Image9

Заключение

RDP протокол — это удобное средство для подключения к удаленной машине под управлением Windows или Linux-системы с графическим интерфейсом. Сервер практически не требует настроек, кроме пары галочек и конфигурации брандмауэра, а клиентские программы радуют своим разнообразием.

  • Удаленное управление реестром windows 10
  • Удаление шрифта в windows 10
  • Удаленное управление компьютером из командной строки windows
  • Удаления обновлений windows 10 из командной строки
  • Удаленное подключение к компьютеру windows server 2019