Создать и разместить SSH-ключ на облачном сервере
SSH-ключи можно использовать для безопасного подключения к серверу по зашифрованному протоколу SSH. Это пара ключей: приватный ключ хранится на локальном компьютере, а публичный размещается на сервере.
Для авторизации на облачном сервере мы рекомендуем использовать SSH-ключи вместо логина и пароля.
Можно использовать SSH-ключи типов rsa, ecdsa и dsa.
Создайте пару SSH-ключей .
Опционально: добавьте публичный SSH-ключ в облачную платформу .
Способ добавления ключа в облачную платформу влияет на его доступность в проектах, пулах и для пользователей, а также на способ размещения на сервере при создании. Подробнее о различиях ключей — в таблице .
Разместите публичный SSH-ключ на облачном сервере: при создании сервера или на созданном сервере .
Создать SSH-ключи
Linux/macOS
Windows
OpenStack CLI
Откройте CLI.
Сгенерируйте пару SSH-ключей:
ssh-keygen -t 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 <~/.ssh/id_rsa.pub>
Укажите <~/.ssh/id_rsa.pub>
— полный путь до публичного ключа, который вы указали на шаге 3.
Опционально: добавьте публичный SSH-ключ в облачную платформу , разместите публичный SSH-ключ при создании сервера или на созданном сервере .
Установите PuTTY.
Откройте приложение PuTTYgen.
В поле Parameters ⟶ Type of key to generate выберите тип ключа RSA.
Нажмите Generate .
Перемещайте курсор в окне PuTTYgen, пока не будет создана пара ключей.
После создания ключей нажмите Save public key и Save private key .
Укажите путь для хранения ключей.
Опционально: в поле Key passphrase введите кодовую фразу для дополнительной защиты.
Скопируйте публичный SSH-ключ.
Опционально: добавьте публичный SSH-ключ в облачную платформу , разместите публичный SSH-ключ при создании сервера или на созданном сервере .
При генерации SSH-ключей через OpenStack CLI публичный ключ автоматически добавится в облачную платформу.
Такой SSH-ключ будет доступен только для пула и сервисного пользователя, которые указаны в файле доступа rc.sh
, а также в проектах этого пользователя.
Подробнее о SSH-ключах для сервисного пользователя .
Откройте OpenStack CLI .
Убедитесь, что в файле rc.sh
указан верный пул и сервисный пользователь.
Сгенерируйте пару SSH-ключей:
openstack keypair create <key_name> --private-key <file_for_key>
Укажите:
<key_name>
— имя ключа;
<file_for_key>
— файл, в котором сохранится приватный SSH-ключ на локальном компьютере.
Опционально: разместите публичный SSH-ключ при создании сервера или на созданном сервере .
Добавить публичный SSH-ключ в облачную платформу
Публичный SSH-ключ можно добавить в облачную платформу и затем разместить его при создании сервера .
Способ добавления ключа в облачную платформу влияет на его доступность в проектах, пулах и для пользователей, а также на способ размещения на сервере при создании. Подробнее о различиях ключей — в таблице .
Для проекта
Для сервисного пользователя
Ключ будет доступен только в одном проекте, для всех пользователей.
В панели управления перейдите в раздел Облачная платформа ⟶ Доступ .
Откройте вкладку SSH-ключи .
Нажмите Добавить SSH-ключ .
Введите имя ключа.
Вставьте публичный SSH-ключ в формате OpenSSH.
Нажмите Добавить ключ .
Ключ будет доступен во всех проектах, в которые добавлен сервисный пользователь с ролями Администратор проекта или Наблюдатель проекта.
В панели управления в правом верхнем углу откройте меню (номер аккаунта) и выберите Профиль и настройки .
Перейдите в раздел Управление пользователями .
Откройте вкладку Сервисные пользователи ⟶ страница пользователя.
В поле SSH-ключи нажмите Добавить ключ .
Введите имя ключа.
Вставьте публичный SSH-ключ в формате OpenSSH.
Нажмите Добавить .
Разместить SSH-ключ на облачном сервере при создании сервера
Панель управления
OpenStack CLI
Доступны только SSH-ключи для проекта .
В панели управления перейдите в раздел Облачная платформа ⟶ Серверы .
Нажмите Создать сервер .
В блоке Доступ добавьте на сервер SSH-ключ:
выберите SSH-ключ, который вы добавили в облачную платформу — можно выбрать только SSH-ключи для проекта;
или добавьте новый SSH-ключ, который вы создали ранее . Ключ добавится в облачную платформу и будет доступен только для проекта.
Выберите остальные настройки сервера — подробнее в инструкции Создать облачный сервер .
Нажмите Создать .
Доступны только SSH-ключи для сервисного пользователя .
SSH-ключ и сервер должны находиться в одном пуле .
Откройте OpenStack CLI .
Создайте облачный сервер:
openstack server create \
[--image <image> | --volume <volume> | --snapshot <snapshot>] \
--flavor <flavor> \
--availability-zone <pool_segment> \
--nic net-id=<net_uuid> \
--block-device-mapping vdb=<extra_volume_name> \
--key-name <key_name> \
<server_name>
Укажите:
тип источника:
--image <image>
— для создания сервера из готового или собственного образа . Параметр <image>
— имя или ID образа, список можно посмотреть с помощью openstack image list
--volume <volume>
— для создания сервера из диска . Параметр <volume>
— имя или ID диска, список можно посмотреть с помощью openstack volume list
--snapshot <snapshot>
— для создания сервера из снапшота . Параметр <snapshot>
— имя или ID снапшота, список можно посмотреть с помощью openstack snapshot list
<flavor>
— имя или ID флейвора (конфигурации) сервера , список можно посмотреть с помощью openstack flavor list
<pool_segment>
— сегмент пула , в котором будет создан сервер, список можно посмотреть с помощью openstack availability zone list
<net_uuid>
— опционально: ID приватной или публичной сети, к которой будет подключен сервер, список можно посмотреть с помощью openstack network list
<add_volume_name>
— опционально: имя дополнительного диска, список можно посмотреть с помощью openstack volume list
<key_name>
— имя SSH-ключа для сервисного пользователя, список можно посмотреть с помощью openstack keypair list
<server_name>
— имя сервера.
Разместить SSH-ключ на созданном облачном сервере
На созданном облачном сервере публичный SSH-ключ можно разместить только через копирование ключа с локального компьютера.
Linux/macOS
Windows
Откройте CLI.
Скопируйте публичный SSH-ключ на облачный сервер:
ssh-copy-id -i <~/.ssh/id_rsa.pub> <username>@<ip_address>
Укажите:
<~/.ssh/id_rsa.pub>
— полный путь до публичного ключа на локальном компьютере;
<username>
— имя пользователя;
<ip_address>
― публичный IP-адрес сервера.
Введите пароль пользователя.
Откройте cmd.
Скопируйте публичный SSH-ключ на облачный сервер:
scp </path/to/file> <username>@<ip_address></path/to/destination>
Укажите:
</path/to/file>
— полный путь до публичного ключа на локальном компьютере;
<username>
— имя пользователя;
<ip_address>
— публичный IP-адрес сервера;
</path/to/destination>
— путь для хранения публичного ключа на сервере.
SSH-ключи для проекта и сервисного пользователя
В облачную платформу можно добавить публичный SSH-ключ:
SSH-ключ для проекта
SSH-ключ для сервисного пользователя
Как добавить ключ в облачную платформу
В панели управления в разделе Облачная платформа ⟶ Доступ
В панели управления в разделе Управление пользователями ⟶ вкладка Сервисные пользователи ⟶ страница пользователя;
добавится автоматически при создании SSH-ключей через OpenStack CLI (команда openstack keypair create);
через API;
через Terraform;
через selvpc CLI
Как разместить на облачном сервере при создании сервера
В панели управления
Через OpenStack CLI (команда openstack server create);
через API;
через Terraform
Для каких пользователей доступен
Для всех пользователей проекта
Для одного сервисного пользователя с ролями Администратор проекта или Наблюдатель проекта
В каких проектах доступен
В одном проекте
Во всех проектах, в которые добавлен сервисный пользователь
В каких пулах доступен
Только в том пуле, в который он был добавлен
Доступен во всех пулах, если был добавлен в панели управления в разделе Управление пользователями ⟶ вкладка Сервисные пользователи ⟶ страница пользователя;
доступен только в тех пулах, в которые был добавлен через OpenStack CLI, API, Terraform, selvpc CLI
Где можно посмотреть список ключей
В панели управления в разделе Облачная платформа ⟶ Доступ
В панели управления в разделе Управление пользователями ⟶ вкладка Сервисные пользователи ⟶ страница пользователя;
через OpenStack CLI (команда openstack keypair list);
через API;
через Terraform;
через selvpc CLI