Как сгенерировать SSH-ключи и добавить их на сервер
Аутентификация по SSH‐ключам безопаснее, чем парольная. В статье разберём, как их сгенерировать и добавить на сервер — отдельно для Windows и Linux.
Что такое SSH-ключи
SSH‑ключи (от «Secure Shell keys») — это пара криптографических ключей для аутентификации и установления защищённого соединения между клиентом (вашим компьютером) и сервером без ввода пароля. Ключи всегда работают в паре. Закрытый ключ (private key) хранится строго на устройстве пользователя, а открытый (public key) передаётся на сервер, к которому нужно подключиться.
Как это работает. Сервер отправляет клиенту случайное сообщение. Клиент подписывает его закрытым ключом и возвращает подпись. Сервер проверяет её с помощью открытого ключа. Если подпись верна — личность пользователя подтверждена.
SSH‑ключи безопаснее паролей по двум ключевым причинам:
- Устойчивость к брутфорс‑атакам. Длина и случайность SSH‑ключей (обычно 2048–4096 бит) делают перебор практически невозможным — в отличие от паролей, даже сложных.
- Отсутствие передачи секретных данных. При аутентификации приватный ключ никогда не покидает устройство пользователя. Сервер проверяет соответствие через криптографический обмен, а не путём передачи пароля (пусть и в зашифрованном виде).
После генерации и добавления ключей на сервер, рекомендуется отключить подключение по паролю, чтобы защитить сервер от брутфорс-атак.
Создание SSH‐ключей в Windows через PuTTYgen
- Загрузите актуальную версию программы PuTTY (например, стабильную сборку 0.83 от 8 февраля 2025 года) с официального ресурса и установите её. В пакет входит утилита PuTTYgen — именно она понадобится для генерации пары ключей.
- Запустите PuTTYgen.exe. В открывшемся окне:
- выберите тип ключа RSA — это оптимальный вариант, поскольку является наиболее поддерживаемым среди различных SSH-клиентов и серверов;
- установите длину ключа 4096 бит (минимум — 2048 бит, но чем длиннее ключ, тем выше защита от взлома).
- нажмите кнопку Generate.

- Для генерации случайности перемещайте курсор мыши в окне приложения — чем хаотичнее, тем лучше. Компьютер не может предугадать движения вашей руки, поэтому ключ получится уникальным.
- Сохраните приватный ключ:
- В поле Key comment можно указать комментарий — например, название устройства или дату создания.
- В Key passphrase задайте парольную фразу: она добавит ещё один уровень защиты. Даже если ваш компьютер взломают и украдут файл ключа, злоумышленник не сможет использовать этот ключ без парольной фразы.
- Сохраните файл (обычно он имеет расширение
.ppk).

- Выделите и скопируйте текст из поля Public key for pasting into OpenSSH authorized_keys file, а затем сохраните его в текстовом файле, например, с именем id_rsa.pub.txt.

Размещение публичного ключа на сервере
- Подключитесь к серверу через PuTTY, используя стандартные логин и пароль.
- Откройте для редактирования файл authorized_keys:
nano ~/.ssh/authorized_keys- Вставьте скопированный публичный ключ (он начинается с ssh-rsa AAAA...). Сохраните изменения (Ctrl+O, затем Enter) и закройте редактор (Ctrl+X).
Настройка PuTTY для аутентификации по ключу
- Запустите PuTTY и создайте новое подключение. В разделе Connection → SSH → Auth → Credentials укажите путь к сохранённому приватному ключу.

- В разделе Connection → Data можно заранее вписать логин, чтобы не вводить его при каждом подключении.
- Вернитесь в Session, укажите IP-адрес сервера и порт SSH. Для удобства сохраните настройки: введите имя в поле Saved Sessions, и нажмите Save, а затем Open.

Если вы задавали парольную фразу (passphrase) при генерации ключей, введите её. После успешного подключения вы увидите приветственное окно операционной системы.

Генерация SSH‑ключей на Linux
- Откройте терминал и выполните команду:
ssh-keygen -t rsa -b 4096 -C your_email@example.com
Разберём параметры команды:
-t rsa— задаёт алгоритм RSA,-b 4096— устанавливает длину ключа 4096 бит,-C «your_email@example.com»— добавляет комментарий (можно использовать e‐mail или любой другой идентификатор).
- Укажите путь для сохранения ключа. Чтобы оставить стандартное расположение, нажмите Enter — ключ сохранится по пути
~/.ssh/id_rsa. - Задайте парольную фразу (passphrase). Хотя этот шаг необязателен, он критически важен для безопасности: даже если приватный ключ попадёт к злоумышленнику, без фразы он будет бесполезен.
После выполнения команды будут созданы два файла:
id_rsa— приватный ключ (никому не передавайте его!),id_rsa.pub— публичный ключ (его нужно скопировать на сервер).

Копирование публичного ключа на сервер
Способ 1: автоматический, предпочтительный
Используйте утилиту ssh-copy-id:
ssh-copy-id username@server_ipГде:
username— имя пользователя на сервере (на серверах 1dedic по умолчанию — root),server_ip— IP‑адрес сервера.
Введите пароль пользователя — ключ автоматически скопируется в файл ~/.ssh/authorized_keys.

Способ 2: ручной
- Выведите содержимое ключа и скопируйте его в буфер обмена:
cat ~/.ssh/id_rsa.pub- Подключитесь к серверу по SSH (подробную инструкцию можно посмотреть здесь):
ssh username@server_ip- Создайте директорию
.sshи файлauthorized_keys, если их нет на сервере:
mkdir -p ~/.sshtouch ~/.ssh/authorized_keys
- Откройте файл
authorized_keysв редакторе (например, nano):
nano ~/.ssh/authorized_keys
- Вставьте скопированное содержимое ключа в конец файла, сохраните изменения (Ctrl+O, Enter) и закройте редактор (Ctrl+X).
- Установите корректные права доступа:
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keysОтключение парольной аутентификации
- Подключитесь к серверу, и отредактируйте конфигурационный файл SSH:
nano /etc/ssh/sshd_config.
- Найдите параметр PasswordAuthentication и установите его значение как no, чтобы отключить авторизацию по паролю для всех пользователей.
- Сохраните изменения (Ctrl+O, Enter) и закройте редактор (Ctrl+X).
- Перезапустите службу SSH, чтобы применить изменения:
systemctl restart sshdДля некоторых дистрибутивов команда может быть другой. Если не срабатывает первая, попробуйте использовать:
service ssh restart- Проверьте корректность настроек:
- Не закрывая текущее соединение, откройте новое окно терминала,
- Попробуйте подключиться к серверу:
ssh username@server_ip.Если подключение прошло без запроса пароля (или запрошена только парольная фраза ключа) — всё настроено верно.

Если новое подключение не удаётся:
- проверьте правильность внесённых изменений в
/etc/ssh/sshd_config, - убедитесь, что ключ присутствует в
~/.ssh/authorized_keys, - перепроверьте права доступа к файлам и папкам в каталоге
.ssh.
Настройка SSH-ключей является существенной мерой для обеспечения безопасной работы сервера. Не стоит забывать, что высокий уровень защиты подразумевает не только грамотную начальную настройку, но и постоянный мониторинг состояния системы. Регулярно отслеживайте выход обновлений для SSH и следуйте рекомендациям по хранению приватных ключей — так вы сможете повысить уровень безопасности вашей инфраструктуры и минимизировать риски потенциальных взломов.
Как подключиться к серверу по SSH, читайте в другой нашей статье.