Перейти к основному содержимому
Создать и разместить SSH-ключ на облачном сервере
Последнее изменение:

Создать и разместить SSH-ключ на облачном сервере

SSH-ключи можно использовать для безопасного подключения к серверу по зашифрованному протоколу SSH. Это пара ключей: приватный ключ хранится на локальном компьютере, а публичный размещается на сервере.

Для авторизации на облачном сервере мы рекомендуем использовать SSH-ключи вместо логина и пароля.

Можно использовать SSH-ключи типов еd25519, rsa, ecdsa и dsa.

  1. Создайте пару SSH-ключей.

  2. Опционально: добавьте публичный SSH-ключ в облачную платформу.

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

  3. Разместите публичный SSH-ключ на облачном сервере: при создании сервера или на существующем сервере.

Создать SSH-ключи

  1. Откройте CLI.

  2. Сгенерируйте пару SSH-ключей:

    ssh-keygen -t <key_type>

    Укажите <key_type> — тип SSH-ключа: еd25519, rsa, ecdsa или dsa

  3. Появится сообщение о выборе директории для хранения пары ключей — пример для rsa-ключа:

    Enter file in which to save the key (~/.ssh/id_rsa):

    Чтобы оставить директорию для хранения ключей по умолчанию, нажмите Enter. Если вы хотите выбрать другую директорию, введите ее в формате /path/to/id_rsa и нажмите Enter.

  4. Опционально: введите кодовую фразу для дополнительной защиты, повторите ее и нажмите Enter:

    Enter passphrase (empty for no passphrase):
    Enter same passphrase again:
  5. Дождитесь сообщения о том, что ключи сгенерированы. Будет создано два файла: 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:
  6. Выведите публичный SSH-ключ:

    cat <~/.ssh/id_rsa.pub>

    Укажите <~/.ssh/id_rsa.pub> — полный путь до публичного ключа, который вы указали на шаге 3.

  7. Опционально: добавьте публичный SSH-ключ в облачную платформу, разместите публичный SSH-ключ при создании сервера или на существующем сервере.

Добавить публичный SSH-ключ в облачную платформу

Публичный SSH-ключ можно добавить в облачную платформу и затем разместить его при создании сервера.

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

Ключ будет доступен только в одном проекте, для всех пользователей.

  1. В панели управления перейдите в раздел Облачная платформаДоступ.
  2. Откройте вкладку SSH-ключи.
  3. Нажмите Добавить SSH-ключ.
  4. Введите имя ключа.
  5. Вставьте публичный SSH-ключ в формате OpenSSH.
  6. Нажмите Добавить ключ.

Разместить публичный SSH-ключ на облачном сервере при создании сервера

Доступны только SSH-ключи для проекта.

  1. В панели управления перейдите в раздел Облачная платформаСерверы.

  2. Нажмите Создать сервер.

  3. В блоке Доступ добавьте на сервер SSH-ключ:

    • выберите SSH-ключ, который вы добавили в облачную платформу — можно выбрать только SSH-ключи для проекта;
    • или добавьте новый SSH-ключ, который вы создали ранее. Ключ добавится в облачную платформу и будет доступен только для проекта.
  4. Выберите остальные настройки сервера — подробнее в инструкции Создать облачный сервер.

  5. Нажмите Создать.

Разместить публичный SSH-ключ на существующем облачном сервере

Для доступа к облачному серверу по SSH нужно добавить публичный SSH-ключ в файл ~/.ssh/authorized_keys на сервере. Можно добавить несколько ключей, например, если нужен доступ нескольким пользователям.

Публичные SSH-ключи можно разместить двумя способами:

Скопировать публичный SSH-ключ с локального компьютера с помощью ssh-copy-id

Команда ssh-copy-id добавляет публичный SSH-ключ в конец файла ~/.ssh/authorized_keys. Команда создает директорию и файл, если они еще не созданы.

  1. Откройте CLI на локальном компьютере.

  2. Скопируйте публичный SSH-ключ на облачный сервер:

    ssh-copy-id -i <~/.ssh/id_rsa.pub> <username>@<ip_address>

    Укажите:

    • <~/.ssh/id_rsa.pub> — полный путь до публичного ключа на локальном компьютере;
    • <username> — имя пользователя;
    • <ip_address> ― публичный IP-адрес сервера.
  3. Введите пароль пользователя.

Разместить публичный SSH-ключ на сервере вручную

  1. Откройте файл с публичным SSH-ключом на локальном компьютере:

    cat ~/.ssh/id_rsa.pub
  2. Скопируйте значение публичного SSH-ключа.

  3. Подключитесь к серверу.

  4. Перейдите в директорию .ssh:

    cd .ssh
  5. Создайте файл authorized_keys в папке .ssh:

    touch authorized_keys
  6. Добавьте в файл authorized_keys публичный SSH-ключ:

    echo <public_ssh_key> >> ~/.ssh/authorized_keys

    Укажите <public_ssh_key> — публичный SSH-ключ, который вы скопировали на шаге 2. Начинается с ssh-rsa.

  7. Настройте права доступа:

    chmod 700 ~/.ssh
    chmod 600 ~/.ssh/authorized_keys

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