Автентифікація за допомогою відкритого ключа SSH
Якщо на вашій робочій станції досі немає пари SSH-ключів для авторизації, час це виправити.
У середовищі Windows зазвичай використовують клієнт PuTTY, а в Linux - стандартний openssh-client.
Згенерувати ключі під Windows можна за допомогою утиліти PuTTYgen. Рекомендований та найбільш безпечний тип ключа - Ed25519 (EdDSA).
Windows#
Встановлення клієнта PuTTY#
Останню версію дистрибутива завжди можна завантажити на офіційній сторінці розробника .
Генерація пари ключів#
Для створення ключів відкрийте утиліту PuTTYgen. У нижній частині вікна виберіть тип ключа EdDSA та алгоритм Ed25519.
Натисніть кнопку Generate, щоб розпочати процес.
Щоб сформувати достатній рівень ентропії (випадкових даних), програма попросить хаотично рухати курсором миші у межах її вікна.

Заповніть поля Key passphrase та Confirm passphrase надійним паролем. Після цього збережіть відкриту та закриту частини ключа на диск за допомогою кнопок Save public key та Save private key.

GNU/Linux#
Підготовка клієнта#
Швидше за все, потрібний софт у вас вже є, оскільки він входить до базового набору більшості дистрибутивів.
У сімействі RHEL відповідний пакет називається openssh-clients, а в Debian, Ubuntu та їхніх похідних - openssh-client.
Генерація пари ключів#
Виконайте команду від імені свого звичайного (не root) користувача та захистіть ключ надійним паролем:
ssh-keygen -t ed25519
За замовчуванням ключі збережуться у вашому домашньому каталозі:
~/.ssh/id_ed25519- приватний (закритий) ключ;~/.ssh/id_ed25519.pub- публічний (відкритий) ключ.
Додавання публічного ключа на сервер#
Публічний ключ необхідно додати на цільовий сервер у файл ~/.ssh/authorized_keys.
Запам’ятайте: приватний ключ завжди залишається у вас і нікому за жодних обставин не передається.
Файл authorized_keys містить список дозволених публічних ключів, де кожен новий ключ записується з окремого рядка.
Якщо ви працюєте з Linux-клієнта, перенести відкритий ключ на сервер можна буквально однією командою за допомогою утиліти ssh-copy-id:
# ssh-copy-id <server>
ssh-copy-id deb-lab1.lan
З Windows ситуація трохи складніша, але цілком вирішувана.
Додавання публічного ключа з Windows#
Формати збереження публічного ключа в PuTTYgen та в OpenSSH (який використовується на сервері Linux) відрізняються.
Приклад ключа, збереженого через PuTTYgen:
---- BEGIN SSH2 PUBLIC KEY ----
Comment: "eddsa-key-20260925"
AAAAC3NzaC1lZDI1NTE5AAAAIPyQ589WcSmwJQr2M87givLakh8r0RLWfl3PAmP/
LKQc
---- END SSH2 PUBLIC KEY ----
А ось як цей запис має виглядати у файлі ~/.ssh/authorized_keys на сервері:
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIPyQ589WcSmwJQr2M87givLakh8r0RLWfl3PAmP/LKQc [email protected]
Поля розділяються пробілами:
keytype- тип ключа (у нашому випадкуssh-ed25519);base64-encoded key- відкрита частина ключа в одному рядку;comment- довільний коментар для ідентифікації ключа (наприклад, користувачjoeз ПКworkstation).