>_ SSH GUIDE / FAQ
Практичний посібник із SSH-ключів

SSH-ключі:
безпечний доступ до сервера

Як створити пару ключів у Windows, Linux та macOS, додати відкритий ключ на сервер і підключатися без пароля облікового запису.

Windows 10 / 11LinuxmacOSOpenSSH
YOUR DEVICESERVER

Що таке SSH-ключ і навіщо він потрібен?

SSH-ключі забезпечують захищену автентифікацію під час підключення до віддаленого сервера. Це зручна альтернатива введенню пароля під час кожного входу.

Відкритий ключ (public key)

Його додають на сервер у файл authorized_keys. Ним можна ділитися з адміністратором сервера.

Приватний ключ (private key)

Зберігається лише на вашому пристрої. Його не можна надсилати або завантажувати на сервер.

Рекомендований алгоритм: Ed25519 Для більшості сучасних систем використовуйте Ed25519. Він швидкий, компактний і підтримується актуальними версіями OpenSSH.

Параметр -C у командах нижче задає лише коментар-мітку до ключа. Замість e-mail можна вказати будь-яку зрозумілу назву, наприклад laptop-2026, щоб пізніше розрізняти ключі в authorized_keys.

W

Windows 10 / 11

Генерація через PowerShell або термінал Windows
  1. Відкрийте PowerShell або Windows Terminal. На старих збірках Windows 10 OpenSSH Client може бути не встановлений: перевірте командою ssh -V, а за потреби додайте його в Settings → Apps → Optional features.
  2. Виконайте команду створення ключа. Коли система запитає шлях, натисніть Enter, щоб використати стандартне розташування.
ssh-keygen -t ed25519 -C "your_email@example.com"

За бажанням задайте парольну фразу (passphrase) для захисту приватного ключа. Файли буде створено в каталозі C:\Users\ВАШ_КОРИСТУВАЧ\.ssh\.

Get-Content $env:USERPROFILE\.ssh\id_ed25519.pub
Потрібно скопіювати ключ? Команда нижче скопіює відкритий ключ у буфер обміну.
Get-Content $env:USERPROFILE\.ssh\id_ed25519.pub | Set-Clipboard
$

Linux

Ubuntu, Debian, AlmaLinux, Rocky Linux та інші дистрибутиви
  1. Відкрийте термінал під своїм звичайним користувачем.
  2. Створіть пару ключів командою ssh-keygen.
  3. Натисніть Enter для стандартного шляху та за бажанням задайте passphrase.
ssh-keygen -t ed25519 -C "your_email@example.com"

Переглянути відкритий ключ:

cat ~/.ssh/id_ed25519.pub

Якщо команда ssh-keygen відсутня, встановіть клієнт OpenSSH зі стандартного менеджера пакетів вашого дистрибутива.

⌘

macOS

Створення SSH-ключа через Terminal
  1. Відкрийте програму Terminal через Spotlight або Applications → Utilities.
  2. Виконайте команду генерації ключа.
  3. Підтвердьте стандартний шлях і за бажанням задайте passphrase.
ssh-keygen -t ed25519 -C "your_email@example.com"

Переглянути відкритий ключ:

cat ~/.ssh/id_ed25519.pub

Скопіювати відкритий ключ у буфер обміну macOS:

pbcopy < ~/.ssh/id_ed25519.pub

Як додати відкритий ключ на сервер?

На сервер потрібно передати саме відкритий ключ — файл із розширенням .pub. Додавати його потрібно для того облікового запису, під яким ви будете підключатися.

Спосіб 1. Автоматично через ssh-copy-id

На Linux або macOS виконайте команду зі свого комп'ютера:

ssh-copy-id user@SERVER_IP

Замініть user на ім'я користувача сервера, а SERVER_IP — на IP-адресу або домен. Система попросить пароль цього користувача на сервері.

Спосіб 2. Додавання вручну

Підключіться до сервера, створіть каталог SSH і відкрийте файл зі списком дозволених ключів:

mkdir -p ~/.ssh
chmod 700 ~/.ssh
nano ~/.ssh/authorized_keys

Вставте вміст відкритого ключа в окремий рядок, збережіть файл і встановіть правильні права:

chmod 600 ~/.ssh/authorized_keys

Також переконайтеся, що домашній каталог користувача не доступний на запис для групи та інших (наприклад, chmod go-w ~): інакше sshd може проігнорувати ключ.

Увага Не перезаписуйте файл authorized_keys, якщо в ньому вже є інші ключі. Додавайте новий ключ окремим рядком, щоб випадково не заблокувати доступ іншим користувачам.

Спосіб 3. З Windows PowerShell (без ssh-copy-id)

У Windows команди ssh-copy-id немає. Відкритий ключ можна додати одним рядком: команда за потреби створить каталог .ssh і допише ключ у кінець файлу, не перезаписуючи наявні ключі.

type $env:USERPROFILE\.ssh\id_ed25519.pub | ssh user@SERVER_IP "mkdir -p ~/.ssh && chmod 700 ~/.ssh && tr -d '\r' >> ~/.ssh/authorized_keys && chmod 600 ~/.ssh/authorized_keys"

Замініть user і SERVER_IP на свої значення. Система попросить пароль користувача на сервері. Фрагмент tr -d прибирає символи кінця рядка Windows, які PowerShell додає до виводу.

Де зберігається файл?

У домашньому каталозі користувача: ~/.ssh/authorized_keys. Наприклад, для root це зазвичай /root/.ssh/authorized_keys, для користувача admin — /home/admin/.ssh/authorized_keys.

Як підключитися до сервера за допомогою ключа?

Якщо ключ має стандартну назву та розташований у стандартному каталозі, виконайте:

ssh user@SERVER_IP

Замініть ім'я користувача та адресу сервера на свої значення. Якщо приватний ключ захищений passphrase, система може попросити її — це не пароль облікового запису сервера.

Якщо ключ має іншу назву або розташування

ssh -i ~/.ssh/my_server_key user@SERVER_IP

Якщо SSH працює на іншому порту

ssh -p 2222 user@SERVER_IP
Перевірте доступ Не закривайте поточну адміністративну сесію, доки не перевірите нове підключення в окремому вікні термінала.

Створення ключа через PuTTYgen (Windows)

Якщо для підключення ви використовуєте PuTTY, ключ можна створити у графічній програмі PuTTYgen.

  1. Запустіть PuTTYgen (зазвичай встановлюється разом із PuTTY).
  2. Виберіть тип EdDSA / Ed25519, якщо він доступний, і натисніть Generate.
  3. Рухайте вказівником миші в області генерації, доки процес не завершиться.
  4. За бажанням задайте Key passphrase.
  5. Збережіть приватний ключ кнопкою Save private key. PuTTY використовує формат .ppk.
  6. Скопіюйте текст із поля Public key for pasting into OpenSSH authorized_keys file та додайте його на сервер.
Не плутайте формати Файл .ppk — приватний ключ для PuTTY. На сервер додається текст відкритого ключа з PuTTYgen, а не файл .ppk.

У PuTTY для підключення вкажіть адресу сервера, а потім у налаштуваннях SSH → Auth → Credentials виберіть файл приватного ключа .ppk. Назви пунктів можуть відрізнятися залежно від версії.

Безпека: важливі правила

  • Не передавайте приватний ключ. Для встановлення доступу використовується лише відкритий ключ (.pub).
  • Захистіть ключ passphrase. Це додатковий рівень захисту в разі втрати файлу.
  • Використовуйте окремі ключі для різних пристроїв. Так можна відкликати доступ одного пристрою окремо.
  • Видаляйте непотрібні ключі. Приберіть відповідний рядок із authorized_keys на сервері.
  • Зберігайте резервну копію безпечно. Не кладіть приватний ключ у відкриті хмарні папки або публічні репозиторії.
Не вимикайте парольний вхід передчасно Спочатку перевірте вхід за ключем в окремій сесії та переконайтеся, що маєте альтернативний доступ до сервера через консоль провайдера.

Часті запитання

Чи можна використовувати один ключ для кількох серверів?

Технічно так: один відкритий ключ можна додати на кілька серверів. Для кращого контролю доступу рекомендовано використовувати окремі ключі для різних пристроїв або завдань.

Чи можна додати кілька ключів одному користувачу?

Так. Кожен відкритий ключ додається окремим рядком у файл ~/.ssh/authorized_keys.

Що робити, якщо приватний ключ втрачено?

Створіть нову пару ключів і додайте новий відкритий ключ на сервер. Якщо старий ключ міг потрапити до сторонніх, видаліть відповідний відкритий ключ із authorized_keys.

Чи можна відновити приватний ключ із відкритого?

Ні. Для сучасних криптографічних алгоритмів отримати приватну частину з відкритої практично неможливо.

Чому сервер і далі запитує пароль?

Перевірте, чи додано ключ саме для потрібного користувача, чи вибрано відповідний приватний ключ, чи вставлено весь відкритий ключ одним рядком і чи правильні права доступу. Для діагностики запустіть ssh -v user@SERVER_IP.

Що означають права 700 і 600?

700 для каталогу ~/.ssh означає доступ лише власнику. 600 для authorized_keys дозволяє читання та запис лише власнику. Домашній каталог також не має бути доступним на запис для групи та інших. Неправильні права можуть призвести до відмови SSH.

Чи потрібно вводити passphrase щоразу?

Якщо ключ не завантажено в SSH-agent, фразу можуть запитувати під час використання. SSH-agent дає змогу розблокувати ключ один раз на час роботи агента. У Windows службу ssh-agent спочатку потрібно запустити (PowerShell від імені адміністратора, один раз).

eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_ed25519
Set-Service ssh-agent -StartupType Automatic
Start-Service ssh-agent
ssh-add $env:USERPROFILE\.ssh\id_ed25519
Що робити, якщо ssh-keygen не знайдено?

Переконайтеся, що встановлено OpenSSH Client. У Windows його можна додати через Optional Features, у Linux — встановити з репозиторію дистрибутива. У macOS утиліта зазвичай уже доступна.

Чи можна вимкнути вхід за паролем?

Так, якщо це дозволяє політика безпеки сервера. Але спочатку обов'язково перевірте вхід за ключем і наявність альтернативного доступу через консоль провайдера.

Коротка пам'ятка команд

Створити ключssh-keygen -t ed25519
Показати відкритий ключ (Linux/macOS)cat ~/.ssh/id_ed25519.pub
Додати ключ (Linux/macOS)ssh-copy-id user@SERVER_IP
Додати ключ (Windows PowerShell)type $env:USERPROFILE\.ssh\id_ed25519.pub | ssh user@SERVER_IP "mkdir -p ~/.ssh && chmod 700 ~/.ssh && tr -d '\r' >> ~/.ssh/authorized_keys && chmod 600 ~/.ssh/authorized_keys"
Підключитисяssh user@SERVER_IP
Діагностикаssh -v user@SERVER_IP
Файл ключів на сервері~/.ssh/authorized_keys