Миран — База знанийМиран — База знаний

Как создать SSH-ключ для авторизации и добавить его на сервер

SSH-ключи — способ подтвердить, что к серверу подключается именно вы, без ввода пароля. Вместо одного секрета, известного и вам, и серверу, используется пара ключей: закрытый остаётся только у вас, а открытый передаётся на сервер и хранится в файле authorized_keys.

Закрытый ключ никогда никому не передавайте и не выкладывайте на публичные сервисы вроде GitHub — по сути, это ваш пароль от сервера в другой форме.

Создание ключа в Linux и macOS

Откройте терминал и выполните команду:

ssh-keygen -t ed25519 -C "ваш_email@example.com"

Система спросит, куда сохранить ключи — путь по умолчанию указан в скобках, можно просто нажать Enter. Затем предложит задать парольную фразу (passphrase): она защищает закрытый ключ, даже если файл попадёт не в те руки. Если фраза не нужна, оставьте поле пустым и нажмите Enter.

Ed25519 — рекомендуемый сегодня тип ключа: он компактнее и быстрее RSA при сопоставимой или более высокой стойкости к взлому. Если сервер или клиент не поддерживает Ed25519 (это редкость для современных систем), используйте RSA:

ssh-keygen -t rsa -b 4096 -C "ваш_email@example.com"

После генерации в каталоге ~/.ssh/ появятся два файла: открытый ключ с расширением .pub и закрытый — без расширения. Именно открытый ключ нужно будет добавить на сервер.

Создание ключа в Windows

В Windows 10 (сборка 1809 и новее) и Windows Server 2019+ есть встроенный клиент OpenSSH, поэтому отдельная программа не нужна.

Откройте PowerShell от имени администратора.

Проверьте, установлен ли OpenSSH:

Get-WindowsCapability -Online | ? Name -like 'OpenSSH.Client*'

Если статус не Installed, установите клиент:

Add-WindowsCapability -Online -Name OpenSSH.Client

Сгенерируйте ключ той же командой, что и в Linux:

ssh-keygen -t ed25519 -C "ваш_email@example.com"

Система предложит путь для сохранения (по умолчанию C:\Users\ИмяПользователя\.ssh\) и парольную фразу — так же, как в Linux и macOS.

Если на компьютере более старая версия Windows без OpenSSH, можно сгенерировать ключ через PuTTYgen — отдельную утилиту, которая ставится вместе с PuTTY.

Добавление ключа через личный кабинет

Самый простой способ передать открытый ключ на сервер у Миран — панель управления виртуальными серверами.

Перейдите в панель управления виртуальными серверами

Сверху справа найдите иконку профиля, перейдите в личный кабинет пользователя панели управления

Откройте раздел SSH-ключи.

Нажмите Добавить SSH-ключ.

Укажите название ключа — чтобы потом было понятно, какой ключ за что отвечает.

В поле Содержимое SSH-ключа вставьте открытый ключ целиком (содержимое файла с расширением .pub).

Нажмите Добавить.

После этого ключ можно использовать для авторизации на виртуальных машинах.

Добавление ключа вручную

Если сервер уже работает и нужно добавить ключ без панели управления, сделать это можно прямо с локального компьютера.

Если на клиентском компьютере установлена утилита ssh-copy-id (есть в большинстве дистрибутивов Linux и в macOS), копирование займёт одну команду:

ssh-copy-id -i ~/.ssh/id_ed25519.pub username@ip-адрес-сервера

Команда запросит пароль от сервера и сама добавит открытый ключ в файл ~/.ssh/authorized_keys.

Если ssh-copy-id недоступна, можно сделать то же самое вручную. Одной командой:

cat ~/.ssh/id_ed25519.pub | ssh username@ip-адрес-сервера 'cat >> ~/.ssh/authorized_keys'

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

Отключение входа по паролю

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

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

Когда убедились, что ключ работает:

Подключитесь к серверу и откройте файл конфигурации:

vi /etc/ssh/sshd_config

Найдите параметр PasswordAuthentication и установите значение no.

Перезапустите службу SSH:

systemctl restart sshd

После этого подключиться к серверу можно будет только по ключу.

Итог

Ключ создаётся один раз на вашем компьютере, а его открытая часть добавляется на каждый сервер, к которому нужен доступ — через личный кабинет или вручную. Такой способ авторизации надёжнее пароля и удобнее, если серверов несколько.

Похожие статьи

Настройка CPU и host-passthrough
Смена тарифа виртуального сервера
Что такое скрипты и как их установить на VDS
Как подключиться к серверу через VNC?
Как подключится к серверу по SSH?