Как создать 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 текстовым редактором и вставьте туда содержимое открытого ключа отдельной строкой.
Отключение входа по паролю
После того как ключ добавлен, можно отключить авторизацию по паролю — тогда войти на сервер получится только по ключу.
Когда убедились, что ключ работает:
Подключитесь к серверу и откройте файл конфигурации:
vi /etc/ssh/sshd_config
Найдите параметр PasswordAuthentication и установите значение no.
Перезапустите службу SSH:
systemctl restart sshd
После этого подключиться к серверу можно будет только по ключу.
Итог
Ключ создаётся один раз на вашем компьютере, а его открытая часть добавляется на каждый сервер, к которому нужен доступ — через личный кабинет или вручную. Такой способ авторизации надёжнее пароля и удобнее, если серверов несколько.