Content
Аутентификация с помощью ключа SSH в PuTTY
Введение
В этом руководстве вы узнаете, как настроить аутентификацию по ключам SSH с помощью PuTTY (популярного SSH-клиента для Windows) Используя аутентификацию на основе ключей вместо аутентификации на основе паролей, вы можете повысить безопасность вашего SSH-соединения. При аутентификации на основе ключей войти в систему могут только те, кто обладает соответствующим закрытым ключом, что обеспечивает более безопасный и надежный метод аутентификации.
В этом руководстве мы рассмотрим процесс настройки аутентификации с помощью SSH-ключей с помощью PuTTY и клиентского приложения.
Важное предупреждение по безопасности: Закрытый ключ (private key) должен храниться в строгой секретности. Никогда не передавайте его третьим лицам, не храните на незащищенных устройствах и используйте пароль для ключа для дополнительной защиты. Если ключ скомпрометирован, немедленно сгенерируйте новый и обновите authorized_keys на сервере.
1) Генерация ключей
PuTTYgen — это инструмент из пакета PuTTY, предназначенный в основном для Windows, для генерации пар SSH-ключей и конвертации их форматов. Его основная функция — создание пар открытых и закрытых ключей, которые могут храниться в файлах .ppk (специфический формат PuTTY). Кроме того, PuTTYgen может конвертировать ключи между форматами, обеспечивая совместимость с различными SSH-клиентами и серверами, такими как OpenSSH.
PuTTYgen позволяет генерировать пары ключей, состоящие из открытого ключа (public key), которым можно делиться, и закрытого ключа (private key), который должен оставаться конфиденциальным. Открытый ключ используется для аутентификации при подключении к удаленным серверам.
Формат .ppk специфичен для PuTTY, но PuTTYgen может конвертировать ключи в другие форматы, такие как OpenSSH.
Альтернатива: Генерация ключей в PuTTYgen
Вы можете генерировать ключи прямо в PuTTYgen на Windows-машине, без использования Linux-сервера. Для этого:
-
Откройте PuTTYgen.
-
Выберите тип ключа (например, RSA или EdDSA) и размер (рекомендуется 2048 бит или больше).
-
Нажмите "Generate" и двигайте мышкой для генерации энтропии.
-
Сохраните публичный ключ (скопируйте текст из поля "Public key for pasting into OpenSSH authorized_keys file") и приватный ключ как .ppk.
-
Добавьте публичный ключ в файл ~/.ssh/authorized_keys на сервере (см. ниже).
Однако в этом руководстве мы рассмотрим генерацию ключей на Linux-сервере с помощью ssh-keygen, а затем конвертацию для PuTTY.
Предварительные условия
Прежде чем начать, убедитесь, что у вас есть следующие компоненты:
-
PuTTY и PuTTYgen — скачайте с официального сайта. PuTTYgen входит в пакет PuTTY.
-
Сервер Linux с установленным OpenSSH (обычно предустановлен в большинстве дистрибутивов).
-
Доступ к серверу по SSH с паролем (для начальной настройки ключей).
-
Опционально: Пароль для защиты ключей (рекомендуется для повышения безопасности).
Проверка конфигурации сервера
Перед генерацией ключей убедитесь, что на сервере включена аутентификация по ключам. Откройте файл /etc/ssh/sshd_config (с правами root):
sudo nano /etc/ssh/sshd_config |
Убедитесь, что строка PubkeyAuthentication yes присутствует и не закомментирована. Если изменения внесены, сохраните файл и перезапустите службу SSH:
sudo systemctl restart sshd |
(В некоторых дистрибутивах: sudo service ssh restart).
Пошаговое руководство по генерации ключей в Linux
Подключитесь к серверу по SSH с паролем (используя PuTTY или другой клиент) и выполните следующие шаги от имени пользователя, под которым вы хотите авторизоваться (рекомендуется не root для безопасности; используйте sudo при необходимости).
Запустите утилиту ssh-keygen. Она спросит, где сохранить ключи (по умолчанию ~/.ssh/id_rsa), и попросит задать пароль (рекомендуется задать для дополнительной защиты; можно пропустить, нажав Enter).
ssh-keygen -t rsa -b 2048 |
(Опционально: используйте -t ed25519 для более современного алгоритма).
Теперь у вас есть два файла в каталоге ~/.ssh:
- id_rsa — закрытый ключ (private key).
- id_rsa.pub — открытый ключ (public key).
Просмотрите ключи (опционально, для проверки):
cat ~/.ssh/id_rsa cat ~/.ssh/id_rsa.pub |
Перейдите в папку ~/.ssh (если ещё не там):
cd ~/.ssh |
Добавьте открытый ключ в файл authorized_keys (используйте >>, чтобы не перезаписывать существующий файл):
cat id_rsa.pub >> authorized_keys
Установите правильные права доступа (это критично для работы SSH):
chmod 700 ~/.ssh chmod 600 id_rsa chmod 600 authorized_keys |
После этих шагов сервер готов принимать подключения по ключу. Перезапустите SSH, если меняли конфигурацию:
sudo systemctl restart sshd |
2) Конвертация ключа и авторизация с помощью PuTTY
Теперь передайте закрытый ключ (id_rsa) с сервера на вашу локальную Windows-машину и конвертируйте его в формат .ppk для PuTTY.
Передача ключа на локальную машину
Используйте scp (из PuTTY пакета — pscp.exe) или другой безопасный метод. Пример с pscp (запустите в командной строке Windows):
pscp user@server_ip:~/.ssh/id_rsa C:\path\to\local\id_rsa |
(Замените user@server_ip на ваши данные, C:\path\to\local — на локальный путь).
Предупреждение: Никогда не передавайте ключ по незащищенным каналам (например, email). Используйте шифрованные методы.
Конвертация в формат .ppk с помощью PuTTYgen
Откройте PuTTYgen на Windows.

Нажмите "Load" и выберите файл id_rsa (PuTTYgen поддерживает формат OpenSSH).

Если ключ защищен паролем, введите его.

После загрузки нажмите "Save private key" и сохраните файл как .ppk (например, mykey.ppk). Согласитесь на сохранение без пароля, если не хотите дополнительный (но рекомендуется использовать пароль).
Настройка PuTTY для использования ключа
Откройте PuTTY.
В главном окне укажите IP-адрес сервера, порт (обычно 22) и тип соединения SSH.
Перейдите в раздел "Connection → SSH → Auth →Credentials".
В поле "Private key file for authentication" укажите путь к файлу .ppk.

Опционально: Для автологина перейдите в "Connection → Data" и в поле "Auto-login username" укажите имя пользователя (например, root или ваш пользователь).
Сохраните сессию для удобства и подключитесь.
При подключении, если ключ защищен паролем, PuTTY попросит его ввести. Если всё настроено правильно, вы войдете без запроса пароля сервера.
Совет: Для управления несколькими ключами используйте PuTTY Pageant (агент ключей из пакета PuTTY). Загрузите .ppk в Pageant, и PuTTY будет использовать его автоматически.
Заключение
Настроив аутентификацию по SSH-ключам с помощью PuTTY и Linux-сервера, вы установите более безопасное и надежное соединение. Использование SSH-ключей избавляет от необходимости вводить пароли, снижая риск brute-force атак и перехвата. Следуйте шагам, описанным в этом руководстве, чтобы настроить аутентификацию с помощью SSH-ключей в PuTTY и наслаждайтесь преимуществами.
Дополнительно: Регулярно обновляйте ключи, мониторьте логи сервера (/var/log/auth.log) и отключите парольную аутентификацию в sshd_config (PasswordAuthentication no), если ключи — единственный метод входа. Если возникнут проблемы, проверьте права файлов и конфигурацию сервера.