Управление аутентификацией виртуальной машины Linux в Microsoft Azure

Опубликовано: 3 Марта, 2023
Управление аутентификацией виртуальной машины Linux в Microsoft Azure

Microsoft Azure поддерживает несколько дистрибутивов Linux, и Linux является первоклассным гражданином в мире Azure. При подготовке новой виртуальной машины Linux у нас есть несколько способов аутентификации только что созданной виртуальной машины Linux. Мы можем использовать пароли, ключи SSH и Azure AD.

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

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

Получение инструментов

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

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

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

Использование аутентификации по паролю

При подготовке новой виртуальной машины с помощью портала Microsoft Azure в первом разделе мастера мы указываем пароль для типа аутентификации, а затем определяем имя пользователя и пароль.

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

После того, как виртуальная машина подготовлена, мы можем щелкнуть ее и на странице «Обзор» нажать «Подключить», и в новом лезвии будет отображаться вся информация, необходимая для подключения к нашей новой виртуальной машине Linux на вкладке SSH.

Поскольку мы используем Windows 10 на нашем рабочем столе, мы будем использовать для подключения к новой виртуальной машине Linux. Откройте

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

После входа в виртуальную машину Linux мы можем изменить пароль , используя sudo passwd root и указав новый пароль, как показано на изображении ниже.

Использование аутентификации с открытым ключом SSH

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

Мы собираемся использовать для создания пары ключей. Запустите файл puttygen.exe. При создании ключа обязательно наведите указатель мыши на пустую область мастера, и это создаст некоторую случайность, которая будет использоваться при создании новой пары ключей.

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

Теперь, когда у нас есть открытый ключ, мы создадим новую виртуальную машину Linux и определим имя пользователя (например, «batman»). Выберите открытый ключ SSH, вставьте и продолжите подготовку виртуальной машины, используя значения по умолчанию.

Примечание. У нас есть несколько вариантов создания пары ключей. Например, с помощью Azure CLI мы можем сгенерировать пару ключей SSH как часть подготовки виртуальной машины.

Чтобы подключиться с помощью SSH-ключей, нам нужно будет настроить с нашим закрытым ключом, который является аналогом , который мы вставили во время предоставления виртуальной машины Linux. Разверните Connection, SSH, Auth и выберите файл .

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

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

Переключение с пароля на ключи SSH

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

Первый шаг — заполнить .ssh/authorized_keys, и простой способ сделать это — использовать следующую команду echo «ssh-rsa <однострочный открытый ключ>» >> ~/.ssh/authorized_keys. Если папка или файл не существуют, мы должны их создать.

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

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

Мы собираемся отредактировать файл /etc/ssh/sshd_config и изменить значение с PasswordAuthentication на no, как показано на изображении ниже. После этого нам просто нужно перезапустить службу ssh, выполнив следующую команду: sudo systemctl restart ssh

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

Ваша виртуальная машина Linux готова!

Поздравляем! Вы не только успешно настроили виртуальную машину Linux в Microsoft Azure, но и повысили свою безопасность с помощью SSH-ключей.