Создать и разместить SSH-ключ на облачном сервере
SSH-ключи можно использовать для безопасного подключения к серверу по зашифрованному протоколу SSH. Это пара ключей: приватный ключ хранится на локальном компьютере, а публичный размещается на сервере.
Для авторизации на облачном сервере мы рекомендуем использовать SSH-ключи вместо логина и пароля.
Можно использовать SSH-ключи типов еd25519, rsa, ecdsa и dsa.
-
Опционально: добавьте публичный SSH-ключ в облачную платформу.
Способ добавления ключа в облачную платформу влияет на его доступность в проектах, пулах и для пользователей, а также на способ размещения на сервере при создании. Подробнее о различиях ключей — в таблице SSH-ключи для проекта и сервисного пользователя.
1. Создать SSH-ключи
Linux/macOS
Windows
OpenStack CLI
-
Откройте CLI.
-
Сгенерируйте пару SSH-ключей:
ssh-keygen -t <key_type>
Укажите
<key_type>
— тип SSH-ключа:еd25519
,rsa
,ecdsa
илиdsa
-
Появится сообщение о выборе директории для хранения пары ключей — пример для rsa-ключа:
Enter file in which to save the key (~/.ssh/id_rsa):
Чтобы оставить директорию для хранения ключей по умолчанию, нажмите Enter. Если вы хотите выбрать другую директорию, введите ее в формате
/path/to/id_rsa
и нажмите Enter. -
Опционально: введите кодовую фразу для дополнительной защиты, повторите ее и нажмите Enter:
Enter passphrase (empty for no passphrase):
Enter same passphrase again: -
Дождитесь сообщения о том, что ключи сгенерированы. Будет создано два файла:
id_rsa
(приватный ключ) иid_rsa.pub
(публичный ключ). В терминале появится отпечаток ключа и его изображение:Your identification has been saved in ~/.ssh/id_rsa
Your public key has been saved in ~/.ssh/id_rsa.pub
The key fingerprint is:
The key's randomart image is: -
Выведите публичный SSH-ключ:
cat <path>
Укажите
<path>
— полный путь до публичного ключа, который вы указали на шаге 3, например~/.ssh/id_rsa.pub
.
- Установите PuTTY.
- Откройте приложение PuTTYgen.
- В поле Parameters → Type of key to generate выберите тип ключа RSA.
- Нажмите Generate.
- Перемещайте курсор в окне PuTTYgen, пока не будет создана пара ключей.
- После создания ключей нажмите Save public key и Save private key.
- Укажите путь для хранения ключей.
- Опционально: в поле Key passphrase введите кодовую фразу для дополнительной защиты.
- Скопируйте публичный SSH-ключ.
При генерации SSH-ключей через OpenStack CLI публичный ключ автоматически добавится в облачную платформу.
SSH-ключ будет доступен только для одного сервисного пользователя, проекта и пула, для которых вы настроили авторизацию в OpenStack API.
Подробнее о SSH-ключах для сервисного пользователя.
-
Сгенерируйте пару SSH-ключей:
openstack keypair create <key_name> --private-key <file_for_key>
Укажите:
<key_name>
— имя ключа;<file_for_key>
— файл, в котором сохранится приватный SSH-ключ на локальном компьютере.
2. Опционально: добавить публичный SSH-ключ в облачную платформу
Публичный SSH-ключ можно добавить в облачную платформу и затем разместить его при создании сервера.
Способ добавления ключа в облачную платформу влияет на его доступность в проектах, пулах и для пользователей, а также на способ размещения на сервере при создании. Подробнее о различиях ключей — в таблице SSH-ключи для проекта и сервисного пользователя.
Для проекта
Для сервисного пользователя
Ключ будет доступен только в одном проекте, для всех пользователей.
- В панели управления перейдите в раздел Облачная платформа → Доступ.
- Откройте вкладку SSH-ключи.
- Нажмите Добавить SSH-ключ.
- Введите имя ключа.
- Вставьте публичный SSH-ключ в формате OpenSSH.
- Нажмите Добавить ключ.
Ключ будет доступен во всех проектах, в которые добавлен сервисный пользователь с ролями Администратор проекта или Наблюдатель проекта.
- В панели управления перейдите в раздел Управление доступом → Управление пользователями.
- Откройте вкладку Сервисные пользователи.
- Откройте страницу пользователя.
- В поле SSH-ключи нажмите Добавить ключ.
- Введите имя ключа.
- Вставьте публичный SSH-ключ в формате OpenSSH.
- Нажмите Добавить.
3. Разместить публичный SSH-ключ на облачном сервере
Разместить публичный SSH-ключ можно при создании облачного сервера или на существующем сервере.
Для доступа к облачному серверу по SSH нужно добавить публичный SSH-ключ в файл ~/.ssh/authorized_keys
на сервере. Можно добавить несколько ключей, например, если нужен доступ нескольким пользователям.
Публичные SSH-ключи на существующем сервере можно разместить двумя способами:
- скопировать ключ на сервер с локального компьютера через команду ssh-copy-id;
- разместить ключ на сервере вручную.
Скопировать публичный SSH-ключ с локального компьютера с помощью ssh-copy-id
Из Linux/macOS
Из Windows
Команда ssh-copy-id
добавляет публичный SSH-ключ в конец файла ~/.ssh/authorized_keys
. Команда создает директорию и файл, если они еще не созданы.
-
Откройте CLI на локальном компьютере.
-
Скопируйте публичный SSH-ключ на облачный сервер:
ssh-copy-id -i <path> <username>@<ip_address>
Укажите:
<path>
— полный путь до публичного ключа на локальном компьютере, например~/.ssh/id_rsa.pub
;<username>
— имя пользователя;<ip_address>
― публичный IP-адрес сервера.
-
Введите пароль пользователя.
-
Откройте cmd на локальном компьютере.
-
Скопируйте публичный SSH-ключ на облачный сервер:
scp <local_path> <username>@<ip_address>:<server_path>
Укажите:
<local_path>
— полный путь д о публичного ключа на локальном компьютере;<username>
— имя пользователя;<ip_address>
— публичный IP-адрес сервера;<server_path>
— путь для хранения публичного ключа на сервере, напримерC:\Users\username\.ssh\authorized_keys
.
Разместить публичный SSH-ключ на сервере вручную
-
Откройте файл с публичным SSH-ключом на локальном компьютере:
Linux/macOS
Windows
cat <path>
Укажите
<path>
— полный путь до публичного ключа на локальном компьютере, например~/.ssh/id_rsa.pub
.type <path>
Укажите
<path>
— полный путь до публичного ключа на локальном компьютере, напримерC:\Users\username\.ssh\id_rsa.pub
. -
Скопируйте значение публичного SSH-ключа.
-
Перейдите в директорию
.ssh
:cd .ssh
-
Создайте файл
authorized_keys
:touch authorized_keys
-
Добавьте в файл
authorized_keys
публичный SSH-ключ:echo <public_ssh_key> >> ~/.ssh/authorized_keys
Укажите
<public_ssh_key>
— публичный SSH-ключ, который вы скопировали на шаге 2. Начинается сssh-rsa
. -
Настройте права доступа:
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
SSH-ключи для проекта и сервисного пользователя
В облачную платформу можно добавить публичный SSH-ключ:
- для проекта;
- или для сервисного пользователя с ролью Администратор проекта или Наблюдатель проекта.