Content
Автентифікація за допомогою SSH-ключів у PuTTY
Вступ
У цьому посібнику ви дізнаєтеся, як налаштувати автентифікацію на основі ключів SSH за допомогою PuTTY, популярного SSH-клієнта для Windows. Використання автентифікації на основі ключів замість автентифікації за паролем дозволяє підвищити безпеку вашого SSH-з’єднання. Автентифікація на основі ключів гарантує, що лише ті, хто має відповідний приватний ключ, можуть увійти в систему, забезпечуючи більш безпечний і надійний метод автентифікації.
Цей посібник описує процес налаштування автентифікації за ключами SSH за допомогою PuTTY та клієнтської програми.
Важливе застереження щодо безпеки: Приватний ключ має бути суворо конфіденційним. Ніколи не передавайте його третім особам, не зберігайте на незахищених пристроях і використовуйте пароль для додаткового захисту ключа. Якщо ключ скомпрометовано, негайно створіть нову пару ключів і оновіть файл authorized_keys
на сервері.
1) Генерація ключів
PuTTYgen — це інструмент із пакета PuTTY, призначений головним чином для Windows, для створення пар ключів SSH і конвертації їх форматів. Його основна функція — створення пар публічних і приватних ключів, які можуть зберігатися у форматі .ppk
(специфічний для PuTTY). Крім того, PuTTYgen може конвертувати ключі між форматами, забезпечуючи сумісність із різними SSH-клієнтами та серверами, такими як OpenSSH.
PuTTYgen генерує пари ключів, що складаються з публічного ключа, який можна поширювати, і приватного ключа, який має залишатися конфіденційним. Публічний ключ використовується для автентифікації під час підключення до віддалених серверів.
Формат .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
— приватний ключ.id_rsa.pub
— публічний ключ.
Перегляньте ключі (опціонально, для перевірки):
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
— на локальний шлях.)
Застереження: Ніколи не передавайте ключ через незахищені канали (наприклад, електронну пошту). Використовуйте шифровані методи.
Конвертація у формат .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 і вкажіть ім’я користувача (наприклад, root
або вашого користувача) у полі Auto-login username.
Збережіть сесію для зручності та підключіться.
Під час підключення, якщо ключ захищений паролем, PuTTY попросить його ввести. Якщо все налаштовано правильно, ви увійдете без запиту пароля сервера.
Порада: Для керування кількома ключами використовуйте PuTTY Pageant (агент ключів із пакета PuTTY). Завантажте файл .ppk
у Pageant, і PuTTY використовуватиме його автоматично.
Висновок
Налаштувавши автентифікацію за ключами SSH за допомогою PuTTY і сервера Linux, ви встановите більш безпечне та надійне з’єднання. Використання ключів SSH усуває потребу вводити паролі, знижуючи ризик атак грубої сили та перехоплення. Дотримуйтесь кроків, описаних у цьому посібнику, щоб налаштувати автентифікацію за ключами SSH у PuTTY та насолоджуйтесь перевагами.
Додаткові поради: Регулярно оновлюйте ключі, відстежуйте журнали сервера (/var/log/auth.log
) і вимкніть автентифікацію за паролем у sshd_config
(PasswordAuthentication no
), якщо ключі — єдиний метод входу. Якщо виникнуть проблеми, перевірте права доступу до файлів і конфігурацію сервера.