Создать и разместить 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-ключах для сервисного пользователя.
Убедитесь, что в файле
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 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 нужно добавить публичный SSH-ключ в файл ~/.ssh/authorized_keys
на сервере. Можно добавить несколько ключей, например, если нужен доступ нескольким пользователям.
Публичные SSH-ключи можно разместить двумя способами:
- скопировать ключ на сервер с локального компьютера через команду ssh-copy-id;
- разместить ключ на сервере вручную.
Скопировать публичный SSH-ключ с локального компьютера с помощью ssh-copy-id
Команда ssh-copy-id
добавляет публичный SSH-ключ в конец файла ~/.ssh/authorized_keys
. Команда создает директорию и файл, если они еще не созданы.
- Из 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>:C:\Users\<username>\.ssh\authorized_keys
Укажите:
</path/to/file>
— полный путь до публичного ключа на локальном компьютере;<username>
— имя пользователя;<ip_address>
— публичный IP-адрес сервера.
Разместить публичный SSH-ключ на сервере вручную
Откройте файл с публичным SSH-ключом на локальном компьютере:
- Linux/macOS
- Windows
cat ~/.ssh/id_rsa.pub
type C:\Users\<username>\.ssh\id_rsa.pub
Скопируйте значение публичного SSH-ключа.
Перейдите в директорию
.ssh
:cd .ssh
Создайте файл
authorized_keys
в папке.ssh
: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-ключ:
- для проекта облачной платформы;
- или для сервисного пользователя с ролью Администратор проекта или Наблюдатель проекта.