Использование ключевой пары (ssh-key) для инстансов с cloud образов¶
- Создание ключевой пары в Dashboard при создании инстанса
- Подключение к инстансу с помощью существующего ssh-ключа
- Подключение к инстансу с нескольких хостов
- Как подключиться к инстансу если забыли указать ssh-ключ
При создании нового диска, на этапе выбора образа, в поле «Использовать образ как источник» Вы можете увидеть два типа образов:
- C приставкой в названии: «cloudimg», «openstack», «GenericCloud» например: «focal-server-cloudimg-amd64».
- Без приставки, например, GNU Linux Debian 9.3 [EN] (см. рисунок ниже).
Особенность первого типа заключается в том, что после развертывания инстансов на базе таких образов авторизоваться в системе можно только с использованием ключевой пары (ключа SSH), войти в систему созданную из такого образа с использованием логина и пароля не получится.
О том как создавать ключевые пары и выполнить первую авторизацию в новой системе и пойдет речь в данном руководстве.
Варианты создания ключевой пары для инстансов в облаке «SIM-Cloud».
Существует 2 варианта создания ключевой пары:
- Ключевую пару можно создать в панели управления проектом «SIM-Cloud» при создании инстанса.
- Ключевую пару можно создать самостоятельно заранее на локальном компьютере, а затем импортировать публичный ключ в облако «SIM-Cloud» и присоединить его к инстансу на этапе его создания.
Рассмотрим каждый из вариантов пошагово.
1. Создание ключевой пары в панели управления проектом «Sim-Cloud» при создании инстанса.¶
Создание ключевой пары в Dashboard при создании инстанса
1.1. Создаем диск и в качестве источника для него используем образ с приставкой cloudimg/openstack/GenericCloud в названии.
1.2. В панели управления дисками напротив нужного диска выбираем «ЗАПУСТИТЬ КАК ИНСТАНС», после чего откроется новое окно где нам необходимо заполнить поля с необходимыми параметрами.
1.3. В этом окне в разделе «Ключевая пара» нажимаем кнопку «Создать связку ключей».
1.4. В поле «Key Pair Name» вводим желаемое имя нашей ключевой пары и нажимаем кнопку «СОЗДАТЬ ПАРУ КЛЮЧЕЙ».
1.5. В результате мы получим окно с новым приватным ключом. Этот ключ обязательно нужно сохранить в текстовом формате себе на локальный компьютер после чего нажимаем кнопку «DONE».
1.6. На локальном компьютере по пути «/home/user_name/.ssh» (если папки «.ssh» нет — создаем ее) любым удобным редактором создаем файл с именем «id_rsa» и вставляем в него ключ который мы скопировали на предыдущем шаге, сохраняем внесенные изменения.
Важно
Ключ должен начинаться строкой «—–BEGIN RSA PRIVATE KEY—–», а заканчиваться строкой «—–END RSA PRIVATE KEY—–» как, например, на рисунке ниже.
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». Мы получим результат подобный тому, который видим на рисунке ниже.
В результате у нас в домашней папке пользователя будет создана папка «.ssh», а в ней Вы увидите 2 файла с ключами: публичный (id_rsa.pub) и приватный (id_rsa).
2.2. В панели управления «SIM-Cloud» переходим в «Вычислительные ресурсы» - «Ключевые пары» и нажимаем «IMPORT PUBLIC KEY»
2.3. В открывшемся окне в поле «Key Pair Name» вводим желаемое имя ключевой пары, нажимаем кнопку «Browse» и выбираем наш файл «id_rsa.pub» который мы получили на первом шаге. Нажимаем кнопку «IMPORT PUBLIC KEY». Наш ключ появится в списке доступных.
2.4. В панели управления «Sim-Cloud» создаем диск и в качестве источника для него используем образ с приставкой cloudimg/openstack/GenericCloud в названии.
2.5. В панели управления дисками напротив нужного диска выбираем «ЗАПУСТИТЬ КАК ИНСТАНС», после чего откроется новое окно где нам необходимо заполнить поля с необходимыми параметрами
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» а заканчивается именем компьютера на котором данный ключ был сгенерирован).
4. Добавление ключевой пары на уже существующий инстанс.¶
Как подключиться к инстансу если забыли указать ssh-ключ
Что делать, если Вы уже создали диск на основе образов cloudimg/openstack/GenericCloud и развернули на его базе инстанс но при этом по какой-либо причине при создании инстанса не подключили к нему ключевую пару?
Рассмотрим вариант добавления ключевой пары в такой ситуации поскольку без ее добавления авторизоваться в ОС никак не получится.
4.1 Первым шагом будет выключение инстанса при помощи панели управления «SIM-Cloud». Для этого перейдите в раздел «Вычислительные ресурсы» - «Инстансы» и напротив нужного инстанса выберите из выпадающего списка пункт «Выключить инстанс».
4.2 После того как инстанс будет выключен в этом же меню необходимо выбрать пункт «Удалить инстанс» (при этом диск на базе которого он был создан и все данные останутся в сохранности и удалены не будут, удалена будет только конфигурация инстанса и мы ее создадим заново на следующем шаге без потери данных).
4.3 После того как мы удалили инстанс переходим в раздел «ДИСКИ», напротив нужного нам диска выбираем «Запустить как инстанс» и заполняем поля параметров при этом важно не забыть подключить импортированную ранее ключевую пару согласно раздела 2 данного руководства либо создать связку ключей согласно раздела 1.
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»и т. п.