Использование ключевой пары (ssh-key) для инстансов с cloud образов

При создании нового диска, на этапе выбора образа, в поле «Использовать образ как источник» Вы можете увидеть два типа образов:

  1. C приставкой в названии: «cloudimg», «openstack», «GenericCloud» например: «focal-server-cloudimg-amd64».
  2. Без приставки, например, GNU Linux Debian 9.3 [EN] (см. рисунок ниже).
../../../../_images/create_volume.png

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

О том как создавать ключевые пары и выполнить первую авторизацию в новой системе и пойдет речь в данном руководстве.

Варианты создания ключевой пары для инстансов в облаке «SIM-Cloud».

Существует 2 варианта создания ключевой пары:

  • Ключевую пару можно создать в панели управления проектом «SIM-Cloud» при создании инстанса.
  • Ключевую пару можно создать самостоятельно заранее на локальном компьютере, а затем импортировать публичный ключ в облако «SIM-Cloud» и присоединить его к инстансу на этапе его создания.

Рассмотрим каждый из вариантов пошагово.

1. Создание ключевой пары в панели управления проектом «Sim-Cloud» при создании инстанса.

Создание ключевой пары в Dashboard при создании инстанса

1.1. Создаем диск и в качестве источника для него используем образ с приставкой cloudimg/openstack/GenericCloud в названии.

1.2. В панели управления дисками напротив нужного диска выбираем «ЗАПУСТИТЬ КАК ИНСТАНС», после чего откроется новое окно где нам необходимо заполнить поля с необходимыми параметрами.

../../../../_images/volumes.png

1.3. В этом окне в разделе «Ключевая пара» нажимаем кнопку «Создать связку ключей».

../../../../_images/create_key_pair.png

1.4. В поле «Key Pair Name» вводим желаемое имя нашей ключевой пары и нажимаем кнопку «СОЗДАТЬ ПАРУ КЛЮЧЕЙ».

../../../../_images/key_pair_name.png

1.5. В результате мы получим окно с новым приватным ключом. Этот ключ обязательно нужно сохранить в текстовом формате себе на локальный компьютер после чего нажимаем кнопку «DONE».

../../../../_images/create_key_pair_private_key.png

1.6. На локальном компьютере по пути «/home/user_name/.ssh» (если папки «.ssh» нет — создаем ее) любым удобным редактором создаем файл с именем «id_rsa» и вставляем в него ключ который мы скопировали на предыдущем шаге, сохраняем внесенные изменения.

Важно

Ключ должен начинаться строкой «—–BEGIN RSA PRIVATE KEY—–», а заканчиваться строкой «—–END RSA PRIVATE KEY—–» как, например, на рисунке ниже.

../../../../_images/create_key_pair_private_key_copy.png

1.7. На этом настройка подключения по ключу-SSH завершена. После успешного создания инстанса в командной строке на локальном компьютере нам достаточно ввести команду «ssh ubuntu@server-ip-address» и подтвердить запрос на подключение к новому серверу, авторизация на сервере пройдет автоматически, пароль вводить не нужно.

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

~$ ssh ubuntu@156.67.**.8
The authenticity of host '156.67.52.82 (156.67.**.8)' can't be established.
ECDSA key fingerprint is SHA256lejXFyOX4jDtMdASdP8BLE8OHfQ.
Are you sure you want to continue connecting (yes/no)? yes

Примечание

При первом входе на сервер вместо пользователя в именем «ubuntu», как в нашем примере, если Вы разворачивали ос Debian/CentOS/Fedora вам нужно использовать имя пользователя «debian», «centos», «fedora»и т. п.

2. Создание ключевой пары на локальном компьютере, импорт публичного ключа в проект «SIM-Cloud».

Подключение к инстансу с помощью существующего ssh-ключа

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

2.1. На локальном компьютере в терминале необходимо выполнить команду «ssh-keygen», на все запросы просто нажимаем «Enter». Мы получим результат подобный тому, который видим на рисунке ниже.

../../../../_images/ssh_keygen.png

В результате у нас в домашней папке пользователя будет создана папка «.ssh», а в ней Вы увидите 2 файла с ключами: публичный (id_rsa.pub) и приватный (id_rsa).

../../../../_images/id_rsa_pub.png

2.2. В панели управления «SIM-Cloud» переходим в «Вычислительные ресурсы» - «Ключевые пары» и нажимаем «IMPORT PUBLIC KEY»

../../../../_images/key-pairs_list.png

2.3. В открывшемся окне в поле «Key Pair Name» вводим желаемое имя ключевой пары, нажимаем кнопку «Browse» и выбираем наш файл «id_rsa.pub» который мы получили на первом шаге. Нажимаем кнопку «IMPORT PUBLIC KEY». Наш ключ появится в списке доступных.

../../../../_images/import_public_key.png

2.4. В панели управления «Sim-Cloud» создаем диск и в качестве источника для него используем образ с приставкой cloudimg/openstack/GenericCloud в названии.

2.5. В панели управления дисками напротив нужного диска выбираем «ЗАПУСТИТЬ КАК ИНСТАНС», после чего откроется новое окно где нам необходимо заполнить поля с необходимыми параметрами

../../../../_images/volumes_launch_as_instance.png ../../../../_images/launch_instance_key_pair.png

2.6. В этом окне в разделе «Ключевая пара» выбираем наш импортированный ключ и нажимаем «Запустить инстанс». В результате наш публичный ключ автоматически будет импортирован в файл ~/.ssh/authorized_keys на нашем сервере.

2.7. На этом настройка подключения по ключу-SSH завершена. После успешного создания инстанса в терминале на локальном компьютере нам достаточно ввести команду «ssh ubuntu@server-ip-address» и подтвердить запрос на подключение к новому серверу, авторизация на сервере пройдет автоматически, пароль вводить не нужно.

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

~$ ssh ubuntu@156.67.**.8
The authenticity of host '156.67.52.82 (156.67.**.8)' can't be established.
ECDSA key fingerprint is SHA256lejXFyOX4jDtMdASdP8BLE8OHfQ.
Are you sure you want to continue connecting (yes/no)? yes

Примечание

При первом входе на сервер вместо пользователя в именем «ubuntu», как в нашем примере, если Вы разворачивали ос Debian/CentOS/Fedora вам нужно использовать имя пользователя «debian», «centos», «fedora»и т. п.

3. Подключение к инстансу с нескольких точек доступа

Подключение к инстансу с нескольких хостов

Если Вы хотите подключаться к серверу без ввода пароля с нескольких компьютеров достаточно на каждом из них также выполнить шаг «1» и добавить содержимое их файлов «~/.ssh/id_rsa.pub» в файл ~/.ssh/authorized_keys на вашем сервере (нужно именно добавить в данный файл, а не заменить уже внесенный туда ключ, в итоге у вас может быть внесено несколько публичных ключей в файл ~/.ssh/authorized_keys каждый из которых начинается с надписи «ssh-rsa» а заканчивается именем компьютера на котором данный ключ был сгенерирован).

../../../../_images/authorized_keys.png

4. Добавление ключевой пары на уже существующий инстанс.

Как подключиться к инстансу если забыли указать ssh-ключ

Что делать, если Вы уже создали диск на основе образов cloudimg/openstack/GenericCloud и развернули на его базе инстанс но при этом по какой-либо причине при создании инстанса не подключили к нему ключевую пару?

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

4.1 Первым шагом будет выключение инстанса при помощи панели управления «SIM-Cloud». Для этого перейдите в раздел «Вычислительные ресурсы» - «Инстансы» и напротив нужного инстанса выберите из выпадающего списка пункт «Выключить инстанс».

../../../../_images/shut_off_instance.png

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

4.3 После того как мы удалили инстанс переходим в раздел «ДИСКИ», напротив нужного нам диска выбираем «Запустить как инстанс» и заполняем поля параметров при этом важно не забыть подключить импортированную ранее ключевую пару согласно раздела 2 данного руководства либо создать связку ключей согласно раздела 1.

../../../../_images/launch_instance_key_pair_2.png

4.4 В результате проделанных операций мы повторно создадим инстанс с нужными нам параметрами (CPU/RAM/Network) но уже с подключенной ключевой парой и без потери данных.

Теперь Вы сможете пройти авторизацию в ОС и выполнить дальнейшие настройки системы. После успешного создания инстанса в терминале на локальном компьютере нам достаточно ввести команду «ssh ubuntu@server-ip-address» и подтвердить запрос на подключение к новому серверу, авторизация на сервере пройдет автоматически, пароль вводить не нужно. После первого входа в систему Вы можете добавить новых пользователей на сервер, изменить пароли для существующих, активировать авторизацию по логину-паролю если Вы не желаете использовать авторизацию по ключу и т. д.

~$ ssh ubuntu@156.67.**.8
The authenticity of host '156.67.52.82 (156.67.**.8)' can't be established.
ECDSA key fingerprint is SHA256lejXFyOX4jDtMdASdP8BLE8OHfQ.
Are you sure you want to continue connecting (yes/no)? yes

Примечание

При первом входе на сервер вместо пользователя в именем «ubuntu», как в нашем примере, если Вы разворачивали ос Debian/CentOS/Fedora вам нужно использовать имя пользователя «debian», «centos», «fedora»и т. п.