- Гайд для непрограммистов – как быстро сделать себе VDI (или виртуальное рабочее место) в облаке на ОС Linux
- Раздел 1 – Создаем и подключаемся к виртуальной машине
- Глава 1 – Создание виртуальной машины
- Глава 2 – Формирование SSH-ключа
- Раздел 2 – Установка графической оболочки и подключение к ней через RDP (mstsc)
- Astra Linux Common Edition 2.12, Special edition 1.7 «Воронеж»
- РедОС 7.3.* «Муром»
- ALT Linux 10
- Debian 9, 10, 11
- Вместо заключения
Гайд для непрограммистов – как быстро сделать себе VDI (или виртуальное рабочее место) в облаке на ОС Linux
Предыстория этого гайда: для тестирования версии нашего с партнерами ПО под Линукс необходимо было организовать много стендов с разнообразными дистрибутивами (преимущественно отечественными).
Самым простым способом, как мне показалось, являлась аренда виртуалок на облачном сервисе Яндекс Облако, так как там большое количество отечественных образов и все запускается «в пару кликов». За кажущейся простотой скрывалась проблема, с которой ко мне пришли партнеры: «Мы создали виртуалки в облаке, а как туда теперь войти в графическом режиме, как мы это делаем в 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-ключа вы получите ошибку, которая говорит о том, что папки .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 и начинать работать
РедОС 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 и снова выполните перезагрузку.
Добавлено: Если перезагрузка не помогает — необходимо нажать правой кнопкой мыши по непрогрузившейся панели и выбрать пункт «Сбросить все панели» (англ: «Reset all panels»), как правило это исправляет проблему. Если при нажатии правой кнопкой мыши контекстное меню не появляется — необходимо выполнить обновление системы с использованием команды sudo dnf update и повторить попытку после перезагрузки.
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 и начинать работать
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 и начинать работать
Вместо заключения
Особо внимательные читатели данного гайда могут отметить, что здесь перечислены далеко не все доступные в Яндекс.Облаке дистрибутивы. И этот правда. Дело в том, что моим партнерам не требовались все эти дистрибутивы, а были нужны только те, которые есть в этом гайде. Тем не менее, я более чем уверен, что используя информацию отсюда – вы можете добиться тех же результатов в других дистрибутивах (а так же не только в Яндекс.Облаке).