Предыстория этого гайда: для тестирования версии нашего с партнерами ПО под Линукс необходимо было организовать много стендов с разнообразными дистрибутивами (преимущественно отечественными).

Самым простым способом, как мне показалось, являлась аренда виртуалок на облачном сервисе Яндекс Облако, так как там большое количество отечественных образов и все запускается «в пару кликов». За кажущейся простотой скрывалась проблема, с которой ко мне пришли партнеры: «Мы создали виртуалки в облаке, а как туда теперь войти в графическом режиме, как мы это делаем в VMWare/VirtualBox?».

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

Дисклеймер 1: Этот гайд не для программистов, не для админов, а для обычных пользователей, тестировщиков и прочих ребят, не считающих нужным (и возможным) изучать множество команд терминала для успешной жизни.

Дисклеймер 2: Вполне возможно, что на других облачных сервисах (например, у VK/MailRu Cloud) все работает чуть лучше и удобнее, но у меня нет ресурсов проверять еще и там.

Раздел 1 – Создаем и подключаемся к виртуальной машине

Глава 1 – Создание виртуальной машины

По началу в Яндекс.Облаке начинается все довольно красиво. Заходим в раздел «Виртуальные машины» (Compute Cloud), где есть очень красивая кнопка «Создать ВМ»

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

Неполный список дистрибутивов, доступных в Яндекс.Облаке
Неполный список дистрибутивов, доступных в Яндекс.Облаке

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

Разворачивая виртуальную машину в Яндекс.Облаке этого же пользователя ждет микроинфаркт, потому что возможности указать пароль своему пользователю просто нет. Зато есть вот такая настройка:

Господи, что такое SSH-ключ? Я никогда им не пользовался! Как быть? Куда звонить?

Примерно с такими вопросами ко мне прибегали ребята, когда я по началу рассчитывал на то, что они сами со всем справятся.

Глава 2 – Формирование SSH-ключа

А ларчик открывается просто, и нужные инструменты есть даже под Windows (была базовой ОС в нашем случае)

Сформировать ключ можно в командной строке (cmd) с использованием следующей команды с параметрами:

ssh-keygen -t rsa -b 2048

При выполнении команды будет предложено ввести имя файла для сохранения ключа. Если этого не сделать, ключ будет сохранен в файл id_rsa. Для повышения безопасности рекомендуется для каждого подключения (сервера) создавать отдельный ключ. Для примера можно использовать имя файла: habr, а для сохранения в «стандартную» папку .ssh необходимо указать ее в начале пути:

.ssh/habr

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

Если вдруг при создании SSH-ключа вы получите ошибку, которая говорит о том, что папки .ssh нет - просто создайте ее командой mkdir, ниже на картинке продемонстрирован пример:

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

ssh-rsa AAAAB3Nza … 66piyI1Mhye6qTKyM++v5j drazd@SOMEPCNAME

(начинается на ssh-rsa, заканчивается на имя вашего пользователя@имя компьютера)

Собственно, на этом все сложности с подключением и заканчиваются – содержимое pub файла нужно вставить в поле «SSH-ключ» на странице создания виртуальной машины.

Важно: При вставке из блокнота часто браузер стремится вставить перенос строки в конце SSH-ключа. Обязательно удалите этот перенос, из-за него подключение может не заработать

После создания виртуальной машины (может занимать от 1 до 5 минут) можно подключаться по публичному IP-адресу, который вы можете увидеть в консоли администрирования

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

На данный момент мы можем подключиться только по SSH (удаленное подключение к терминалу \ командной строке в Linux). Для подключения по SSH с использованием RSA-ключа необходимо указать через параметр -i адрес зашифрованного файла с RSA-ключом. Пример:

ssh -i %userprofile%\.ssh\habr habr@IP-адрес

При выполнении команды в первый раз по текущему адресу потребуется подтвердить согласие использовать выбранный RSA-ключ (написать yes). После этого необходимо ввести пароль от RSA-ключа, который был указан на предыдущем шаге при его генерации:

Итог подключения - у вас есть доступ к терминалу вашего виртуального рабочего места
Итог подключения - у вас есть доступ к терминалу вашего виртуального рабочего места

Раздел 2 – Установка графической оболочки и подключение к ней через RDP (mstsc)

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

Но поставить графическую оболочку мало - к ней просто так по SSH не подключишься, поэтому мы будем так же настраивать возможность подключения по RDP. Почему RDP, а не, например, VNC? Потому что мы идем по кратчайшему пути с минимальным сопротивлением. Возможность подключаться к RDP - стандартная функция ОС Windows, поэтому используем именно его.

Примечание: Мы будем использовать XRDP в самой простой конфигурации. В комментарии приглашаются умные ребята, которые расскажут как делать подключение по XRDP максимально безопасным. В моем кейсе особая безопасность не требовалась (виртуалки создавались на полдня и удалялись), но другим читателям может быть полезно.

Что еще важно учесть во всех случаях – так как мы настраивали подключение к системе через RSA-ключ, то у учетной записи нет пароля (или он нам просто неизвестен). В то же время вход по RDP в нашей конфигурации возможен только по паролю. Поэтому для исправления данной ситуации необходимо войти под учетной записью супер пользователя (sudo su) и выполнить команду смены пароля своего пользователя для его установки:

passwd habr

Установив пароль для своего пользователя, можно выйти из режима супер пользователя командой exit.

Astra Linux Common Edition 2.12, Special edition 1.7 «Воронеж»

По умолчанию в Astra Linux принято использовать графическое окружение fly. Устанавливается оно командами:

sudo apt-get update

sudo apt install fly-all-main

Для запуска окружения необходимо запустить соответствующий сервис:
sudo service fly-dm start

Установка XRDP для подключения к удаленному рабочему столу по протоколу RDP (mstsc):

sudo apt-get install xrdp

sudo systemctl restart xrdp

Для корректного подключения рекомендуется выполнить перезагрузку.

sudo reboot

Далее можно подключаться через средство mstsc и начинать работать

Готовое к работе виртуальное рабочее место с Astra Linux Special Edition 1.7 «Воронеж»
Готовое к работе виртуальное рабочее место с Astra Linux Special Edition 1.7 «Воронеж»

РедОС 7.3.* «Муром»

В РедОС можно использовать множество разных графических окружений, но в данном случае мы воспользуемся mate. Устанавливается оно командами:

sudo dnf repoquery

sudo dnf groupinstall mate

Установка XRDP для подключения к удаленному рабочему столу по протоколу RDP (mstsc):

sudo dnf install xrdp xorgxrdp

После установки xrdp необходимо выполнить ряд настроек под учетной записью su (выполните sudo su для переключения):

echo 'PREFERRED="$(type -p mate-session)"' >> /etc/sysconfig/desktop

sed -i 's/param=Xorg/param=\/usr\/libexec\/Xorg/' /etc/xrdp/sesman.ini

Выполнить редактирование файла /etc/xrdp/xrdp.ini

nano /etc/xrdp/xrdp.ini

С использованием сочетания клавиш Ctrl+W найти секцию [Xorg], раскомментируйте ее (удалить в начале символы решетки/хэштеги #).

С использованием сочетания клавиш Ctrl+W найти секцию [Xvnc], закомментировать ее (поставить в начале каждой строки символы решетки/хэштеги #)

Должно получиться примерно так:

Для сохранения изменений в текстовом терминальном редакторе nano нажмите сочетание клавиш Ctrl+O, вам предложат ввести новое имя файла - оставьте прежнее, нажмите Enter. Для выхода из редактора нажмите Ctrl+X.

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

sudo systemctl enable xrdp --now

Для корректного подключения рекомендуется выполнить перезагрузку.

sudo reboot

Далее можно подключаться через средство mstsc и начинать работать

Примечание: Иногда после первого подключения у вас может не появится панель задач (нижняя полоса снизу с кнопкой "Пуск" и списком запущенных программ). Для решения проблемы - подключитесь вновь по ssh и снова выполните перезагрузку

Пример подключения к РедОС с незагруженной панелью задач
Пример подключения к РедОС с незагруженной панелью задач

ALT Linux 10

По умолчанию в ALT Linux принято использовать графическое окружение KDE. Устанавливается оно командами:

sudo apt-get update

sudo apt-get install kde5 kf5-plasma-workspace kde5-network-manager-nm

Установка XRDP для подключения к удаленному рабочему столу по протоколу RDP (mstsc):

sudo apt-get install xrdp

sudo systemctl enable --now xrdp xrdp-sesman

sudo usermod -a -G tsusers habr

здесь tsusers - группа с доступом к удаленному рабочему столу, а habr - имя вашего пользователя

Для корректного подключения рекомендуется выполнить перезагрузку.

sudo reboot

Далее можно подключаться через средство mstsc и начинать работать

Готовое к работе виртуальное рабочее место с ALT Linux 10
Готовое к работе виртуальное рабочее место с ALT Linux 10

Debian 9, 10, 11

В Debian можно использовать множество разных графических окружений, но в данном случае мы воспользуемся xfce4. Устанавливается оно командами:

sudo apt-get update

sudo apt install xfce4 xfce4-goodies xorg dbus-x11 x11-xserver-utils

Установка XRDP для подключения к удаленному рабочему столу по протоколу RDP (mstsc):

sudo apt-get install xrdp

sudo systemctl restart xrdp

Для корректного подключения рекомендуется выполнить перезагрузку.

sudo reboot

Далее можно подключаться через средство mstsc и начинать работать

 

Готовое к работе виртуальное рабочее место с Debian 11
Готовое к работе виртуальное рабочее место с Debian 11

Вместо заключения

Особо внимательные читатели данного гайда могут отметить, что здесь перечислены далеко не все доступные в Яндекс.Облаке дистрибутивы. И этот правда. Дело в том, что моим партнерам не требовались все эти дистрибутивы, а были нужны только те, которые есть в этом гайде. Тем не менее, я более чем уверен, что используя информацию отсюда – вы можете добиться тех же результатов в других дистрибутивах (а так же не только в Яндекс.Облаке).

Комментарии (11)


  1. sergx71
    00.00.0000 00:00
    +2

    Валентин, спасибо за гайд, только это нельзя называть VDI. Совсем. Никак.


    1. Drazd Автор
      00.00.0000 00:00
      -1

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

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


  1. Johan_Palych
    00.00.0000 00:00

    Темы "Tunneling RDP over SSH" не случилось.
    Yandex Cloud Marketplace -Разные версии ОС уже предустановлены в наши образы.

    По умолчанию в ALT Linux принято использовать графическое окружение KDE.

    ОС «Альт Рабочая станция» поставляется в двух вариантах в зависимости от используемой графической среды: ОС «Альт Рабочая станция» использует графическую среду MATE, ОС «Альт Рабочая станция К» использует графическую среду KDE Plasma.
    Simply Linux(Xfce) можно скачать и использовать без ограничений дома и на работе. Бессрочная лицензия бесплатно и навсегда.


    1. Drazd Автор
      00.00.0000 00:00
      -2

      Да, про "Tunneling RDP over SSH" не случилось по той причине, что в кейсах, где этот гайд применяли - он был не нужен. Инцидентов взлома зафиксировано не было.

      Как указал в самой статье - если у вас есть компетенции и навыки настройки под разные дистрибутивы "с нуля" - поделитесь, обязательно добавлю в статью с упоминанием вашего профиля.

      Что касается MATE - тот образ, который используется в Яндекс.Облаке, не дал мне возможности установить эту оболочку "из коробки" без добавления дополнительных репозиториев. А KDE дал. Именно поэтому в статье написал именно так, как вы процитировали.


      1. Johan_Palych
        00.00.0000 00:00

        Как указал в самой статье - если у вас есть компетенции и навыки настройки под разные дистрибутивы "с нуля" - поделитесь, обязательно добавлю в статью с упоминанием вашего профиля.

        Коррупционная составляющая наметилась?
        Мне не надо славы, мне не надо злата...
        Проще всего арендовать железку в датацентре и развернуть на нее Proxmox
        Чем делиться? Манами по: debootstrap, pacstrap, zypper --root /data/, dnf - -installroot=/mnt/new-root
        Могу поделиться ссылками на официальную документацию.

        Настройка сервера удаленных терминалов RDP в Astra Linux Выбор пакетов при установке ОС Astra Linux

        sudo apt install tasksel
        sudo tasksel
        Работает во всех derivatives Debian

        Репозитории ALT Linux. Добавить или раскомментировать строчки несложно.
        Установка MATE
        ALT Linux Xrdp

        Redos.Установка графической оболочки для ОС
        Redos.Настройка xrdp сервера


        1. Drazd Автор
          00.00.0000 00:00
          -1

          Цель данной публикации - сделать централизованный единый хороший гайд.

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

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

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


          1. Johan_Palych
            00.00.0000 00:00

            Согласен. Не надо больше демагогии.
            Проект: Внедрение BPM + RPA(ChatGPT) - Cинергия совместного использования в разработке Reference Book (Создание виртуального рабочего места под короткие задачи)


  1. AstraLinux_Group
    00.00.0000 00:00

    Добрый день! Благодарим. что поделились инструкцией. При необходимости можно оставлять вопросы и предложения у нас в телеграм канале.


  1. ishmakov
    00.00.0000 00:00

    Что бы не заниматься всей этой херней и арендой, ставим docker и все разворачивается по 1 клику и окружение и сервисы.


  1. lightkeeper_217
    00.00.0000 00:00

    А можно узнать минимальные требования к облачным серверам для нормальной работы в графическом интерфейсе? Потому как мой опыт установки оказался не успешным: подключение к rdp устанавливалось, но работать в нём я не смог. Обновление картинки было чуть ли не раз в минуту. Но параметры виртуального сервера были "ниже некуда"


    1. Drazd Автор
      00.00.0000 00:00

      Обычно я и мои партнеры использовали 2-4 ядра и 4-8 гб оперативки, и особых проблем не испытывали.

      Здесь в гайде не перечислен один дистрибутив, который мы так же ставили, но он вызвал проблемы - Ubuntu. Судя по всему, с ней что-то не так, потому что ее оболочки (что через установку ubuntu-desktop, что через установку gnome) тормозят и ведут себя именно так, как вы написали.

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