---
title: 'Создать и разместить SSH-ключ на выделенном сервере'
sidebar_label: 'Создать и разместить SSH-ключ'
sidebar_position: 2
description: 'Как создать SSH-ключи и разместить публичный SSH-ключ на сервере через панель управления или CLI'
---

import Formbricks from '@theme/MDXComponents/Formbricks'
import Tabs from '@theme/Tabs'
import TabItem from '@theme/TabItem'
import {TabItemLabel} from '@selectel/docux/components'

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

SSH-ключи можно использовать для безопасного [подключения к серверу](/dedicated/manage/connect-to-server.mdx) по зашифрованному протоколу SSH.
Это пара ключей: приватный ключ хранится на локальном компьютере, а публичный размещается на сервере.

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

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

1. [Создайте пару SSH-ключей](#create-ssh-key).
2. Опционально: [добавьте публичный SSH-ключ в хранилище для SSH-ключей](#add-public-ssh-key-to-ssh-key-repository).
3. Разместите публичный SSH-ключ на сервере:

   * [c переустановкой ОС](#place-ssh-key-on-dedicated-server-with-os-reinstallation);
   * [без переустановки ОС](#place-ssh-key-on-dedicated-server-without-os-reinstallation).

## 1. Создать SSH-ключи \{#create-ssh-key}

<Tabs queryString="create-ssh-key">
  <TabItem value="linux/macOS" default>
    <TabItemLabel>
      Linux/macOS
    </TabItemLabel>

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

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

       ```bash
       ssh-keygen -t <key_type>
       ```

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

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

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

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

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

       ```bash
       Enter passphrase (empty for no passphrase):
       Enter same passphrase again:
       ```

    5. Дождитесь сообщения о том, что ключи сгенерированы.
       Будет создано два файла: `id_rsa` (приватный ключ) и `id_rsa.pub` (публичный ключ).
       В терминале появится отпечаток ключа и его изображение:

       ```bash
       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-ключ:

       ```bash
       cat <path>
       ```

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

  <TabItem value="windows">
    <TabItemLabel>
      Windows
    </TabItemLabel>

    В Windows 10 создать пару SSH-ключей в можно через командную строку (`cmd.exe`) также, как в Linux или macOS
    В более ранних версиях Windows для этого используется PuTTY.

    1. Установите [PuTTY](https://www.putty.org/).
    2. Откройте приложение PuTTYgen.
    3. В поле **Parameters** → **Type of key to generate** выберите тип ключа RSA.
    4. Нажмите **Generate**.
    5. Перемещайте курсор в окне PuTTYgen, пока не будет создана пара ключей.
    6. После создания ключей нажмите **Save public key** и **Save private key**.
    7. Укажите путь для хранения ключей.
    8. Опционально: в поле **Key passphrase** введите кодовую фразу для дополнительной защиты.
    9. Скопируйте публичный SSH-ключ.
  </TabItem>
</Tabs>

## 2. Опционально: добавить публичный SSH-ключ в хранилище для SSH-ключей \{#add-public-ssh-key-to-ssh-key-repository}

Публичный SSH-ключ можно добавить в хранилище для SSH-ключей и размещать на сервере автоматически при [заказе нового сервера](/dedicated/order) или [при переустановке ОС для существующего сервера](#place-ssh-key-on-dedicated-server-with-os-reinstallation).

1. В [панели управления](https://my.selectel.ru/servers/ssh) в верхнем меню нажмите **Продукты** и выберите **Выделенные серверы**.
2. Перейдите в раздел **SSH-ключи**.
3. Нажмите **Добавить SSH-ключ**.
4. Введите имя ключа.
5. Вставьте публичный SSH-ключ.
6. Нажмите **Добавить**.

## 3. Разместить SSH-ключ на выделенном сервере \{#place-ssh-key-on-dedicated-server}

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

* [c переустановкой ОС](#place-ssh-key-on-dedicated-server-with-os-reinstallation);
* [без переустановки ОС](#place-ssh-key-on-dedicated-server-without-os-reinstallation).

### Разместить SSH-ключ на выделенном сервере c переустановкой ОС \{#place-ssh-key-on-dedicated-server-with-os-reinstallation}

1. В [панели управления](https://my.selectel.ru/servers) в верхнем меню нажмите **Продукты** и выберите **Выделенные серверы**.

2. В разделе **Серверы** откройте вкладку **Список серверов**.

3. Откройте страницу сервера → вкладка **Операционная система**.

4. Нажмите **Переустановить ОС**.

5. В поле **SSH-ключ** добавьте SSH-ключ:

   * отметьте чекбокс с нужным SSH-ключом, который вы [добавили в хранилище для SSH-ключей](#add-public-ssh-key-to-ssh-key-repository);
   * или нажмите **Добавить новый ключ**. Введите имя ключа и вставьте публичный SSH-ключ, который вы создали ранее. Нажмите **Добавить**. Ключ добавится в хранилище для SSH-ключей.

6. Нажмите **Установить**.

### Разместить SSH-ключ на выделенном сервере без переустановки ОС \{#place-ssh-key-on-dedicated-server-without-os-reinstallation}

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

<Tabs queryString="place-ssh-key">
  <TabItem value="linux/macOS" default>
    <TabItemLabel>
      Из Linux/macOS
    </TabItemLabel>

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

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

       ```bash
       ssh-copy-id -i <path> <username>@<ip_address>
       ```

       Укажите:

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

    3. Введите пароль пользователя.
  </TabItem>

  <TabItem value="windows">
    <TabItemLabel>
      Из Windows
    </TabItemLabel>

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

       ```bash
       scp <local_path> <username>@<ip_address>:<server_path>
       ```

       Укажите:

       * `<local_path>` — полный путь до публичного ключа на локальном компьютере;
       * `<username>` — имя пользователя;
       * `<ip_address>` — публичный IP-адрес сервера;
       * `<server_path>` — путь для хранения публичного ключа на сервере, например `C:\Users\username\.ssh\authorized_keys`.
  </TabItem>
</Tabs>

<Formbricks />
