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

28 апреля 2026 7 мин 5

Аутентификация по SSH‐ключам безопаснее, чем парольная. В статье разберём, как их сгенерировать и добавить на сервер — отдельно для Windows и Linux.

Что такое SSH-ключи

SSH‑ключи (от «Secure Shell keys») — это пара криптографических ключей для аутентификации и установления защищённого соединения между клиентом (вашим компьютером) и сервером без ввода пароля. Ключи всегда работают в паре. Закрытый ключ (private key) хранится строго на устройстве пользователя, а открытый (public key) передаётся на сервер, к которому нужно подключиться.

Как это работает. Сервер отправляет клиенту случайное сообщение. Клиент подписывает его закрытым ключом и возвращает подпись. Сервер проверяет её с помощью открытого ключа. Если подпись верна — личность пользователя подтверждена.

SSH‑ключи безопаснее паролей по двум ключевым причинам:

  1. Устойчивость к брутфорс‑атакам. Длина и случайность SSH‑ключей (обычно 2048–4096 бит) делают перебор практически невозможным — в отличие от паролей, даже сложных.
  2. Отсутствие передачи секретных данных. При аутентификации приватный ключ никогда не покидает устройство пользователя. Сервер проверяет соответствие через криптографический обмен, а не путём передачи пароля (пусть и в зашифрованном виде).

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

Создание SSH‐ключей в Windows через PuTTYgen

  1. Загрузите актуальную версию программы PuTTY (например, стабильную сборку 0.83 от 8 февраля 2025 года) с официального ресурса и установите её. В пакет входит утилита PuTTYgen — именно она понадобится для генерации пары ключей.
  2. Запустите PuTTYgen.exe. В открывшемся окне:
  • выберите тип ключа RSA — это оптимальный вариант, поскольку является наиболее поддерживаемым среди различных SSH-клиентов и серверов;
  • установите длину ключа 4096 бит (минимум — 2048 бит, но чем длиннее ключ, тем выше защита от взлома).
  • нажмите кнопку Generate.
Нажмите кнопку Generate
  1. Для генерации случайности перемещайте курсор мыши в окне приложения — чем хаотичнее, тем лучше. Компьютер не может предугадать движения вашей руки, поэтому ключ получится уникальным.
  2. Сохраните приватный ключ:
    • В поле Key comment можно указать комментарий — например, название устройства или дату создания.
    • В Key passphrase задайте парольную фразу: она добавит ещё один уровень защиты. Даже если ваш компьютер взломают и украдут файл ключа, злоумышленник не сможет использовать этот ключ без парольной фразы.
    • Сохраните файл (обычно он имеет расширение .ppk).
Сохраните файл (обычно он имеет расширение .ppk)
  1. Выделите и скопируйте текст из поля Public key for pasting into OpenSSH authorized_keys file, а затем сохраните его в текстовом файле, например, с именем id_rsa.pub.txt.
Выделите и скопируйте текст из поля Public key for pasting into OpenSSH authorized_keys file

Размещение публичного ключа на сервере

  1. Подключитесь к серверу через PuTTY, используя стандартные логин и пароль.
  2. Откройте для редактирования файл authorized_keys:
nano ~/.ssh/authorized_keys
  1. Вставьте скопированный публичный ключ (он начинается с ssh-rsa AAAA...). Сохраните изменения (Ctrl+O, затем Enter) и закройте редактор (Ctrl+X).

Настройка PuTTY для аутентификации по ключу

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

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

Приветственное окно операционной системы

Генерация SSH‑ключей на Linux

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

ssh-keygen -t rsa -b 4096 -C your_email@example.com

Разберём параметры команды:

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

После выполнения команды будут созданы два файла:

  • id_rsa — приватный ключ (никому не передавайте его!),
  • id_rsa.pub — публичный ключ (его нужно скопировать на сервер).
Сохранение SSH-ключей

Копирование публичного ключа на сервер

Способ 1: автоматический, предпочтительный

Используйте утилиту ssh-copy-id:

ssh-copy-id username@server_ip

Где:

  • username — имя пользователя на сервере (на серверах 1dedic по умолчанию — root),
  • server_ip — IP‑адрес сервера.

Введите пароль пользователя — ключ автоматически скопируется в файл ~/.ssh/authorized_keys.

Введите пароль пользователя

Способ 2: ручной

  1. Выведите содержимое ключа и скопируйте его в буфер обмена:
cat ~/.ssh/id_rsa.pub
  1. Подключитесь к серверу по SSH (подробную инструкцию можно посмотреть здесь):
ssh username@server_ip
  1. Создайте директорию .ssh и файл authorized_keys, если их нет на сервере:

mkdir -p ~/.ssh
touch ~/.ssh/authorized_keys

  1. Откройте файл authorized_keys в редакторе (например, nano):

nano ~/.ssh/authorized_keys

  1. Вставьте скопированное содержимое ключа в конец файла, сохраните изменения (Ctrl+O, Enter) и закройте редактор (Ctrl+X).
  2. Установите корректные права доступа:
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys

Отключение парольной аутентификации

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

nano /etc/ssh/sshd_config. 

  • Найдите параметр PasswordAuthentication и установите его значение как no, чтобы отключить авторизацию по паролю для всех пользователей.
  • Сохраните изменения (Ctrl+OEnter) и закройте редактор (Ctrl+X).
  • Перезапустите службу SSH, чтобы применить изменения:
systemctl restart sshd

Для некоторых дистрибутивов команда может быть другой. Если не срабатывает первая, попробуйте использовать:

service ssh restart
  1. Проверьте корректность настроек:
    • Не закрывая текущее соединение, откройте новое окно терминала,
    • Попробуйте подключиться к серверу: 
ssh username@server_ip.

Если подключение прошло без запроса пароля (или запрошена только парольная фраза ключа) — всё настроено верно.

Проверка корректности настроек

Если новое подключение не удаётся:

  • проверьте правильность внесённых изменений в /etc/ssh/sshd_config,
  • убедитесь, что ключ присутствует в ~/.ssh/authorized_keys,
  • перепроверьте права доступа к файлам и папкам в каталоге .ssh.

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

Как подключиться к серверу по SSH, читайте в другой нашей статье. 

 


Мы используем файлы cookie для работы сайта Вы можете отключить cookies в настройках своего браузера, но это может негативно повлиять на работу сайта. Оставаясь на сайте, вы соглашаетесь с использованием файлов cookie.