Використання ключів SSH замість паролів значно підвищує безпеку доступу до серверів. Ось докладний посібник, як це зробити:
1. Що таке ключі SSH?
Ключі SSH — це пара криптографічних ключів (приватний і публічний), які використовуються для аутентифікації під час з’єднання через протокол SSH.
- Приватний ключ зберігається у вас і ніколи не передається.
- Публічний ключ передається серверу і використовується для перевірки.
2. Створення пари ключів SSH
-
Відкрийте термінал на вашому комп’ютері.
-
Виконайте команду для створення ключів:
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
-t rsa
— тип ключа (RSA).-b 4096
— довжина ключа в бітах (чим більше, тим безпечніше).-C "your_email@example.com"
— коментар, зазвичай ваша електронна пошта.
-
Система запропонує вказати шлях для збереження ключа:
Enter file in which to save the key (/home/your_user/.ssh/id_rsa):
- Натисніть
Enter
, щоб зберегти в стандартному місці (~/.ssh/id_rsa
).
- Натисніть
-
Система запитає парольну фразу (passphrase):
Enter passphrase (empty for no passphrase):
- Ви можете залишити її порожньою, але це не рекомендується. Парольна фраза додає додатковий рівень захисту.
Після цього буде створено два файли:
- Приватний ключ:
~/.ssh/id_rsa
- Публічний ключ:
~/.ssh/id_rsa.pub
3. Завантаження публічного ключа на сервер
-
Автоматично через команду:
Якщо у вас є доступ до сервера за допомогою пароля, скористайтеся командою:ssh-copy-id user@server_ip
user
— ім’я користувача на сервері.server_ip
— IP-адреса або домен сервера.
Ця команда автоматично додасть ваш публічний ключ до файлу
~/.ssh/authorized_keys
на сервері. -
Ручне копіювання:
Якщо автоматичний метод недоступний:- Скопіюйте вміст публічного ключа:
cat ~/.ssh/id_rsa.pub
- Увійдіть на сервер:
ssh user@server_ip
- Відкрийте або створіть файл
~/.ssh/authorized_keys
:nano ~/.ssh/authorized_keys
- Вставте туди ваш публічний ключ.
- Збережіть зміни і закрийте редактор.
Переконайтеся, що права доступу до файлу правильні:
chmod 600 ~/.ssh/authorized_keys
- Скопіюйте вміст публічного ключа:
4. Налаштування сервера для роботи тільки з ключами
-
Відредагуйте файл конфігурації SSH:
sudo nano /etc/ssh/sshd_config
-
Знайдіть і змініть/додайте такі параметри:
PasswordAuthentication no PubkeyAuthentication yes
Це вимикає аутентифікацію за паролем і дозволяє використовувати лише ключі.
-
Перезапустіть службу SSH:
sudo systemctl restart ssh
5. Перевірка підключення
-
Виконайте підключення:
ssh user@server_ip
Якщо все налаштовано правильно, вам не доведеться вводити пароль.
-
Якщо ви використовували парольну фразу для ключа, система запросить її:
Enter passphrase for key '~/.ssh/id_rsa':
6. Додаткові поради
-
Керування кількома серверами:
Якщо у вас є кілька серверів, можете використовувати окремі пари ключів для кожного або конфігурувати файл~/.ssh/config
:Host server1 HostName server1.example.com User user1 IdentityFile ~/.ssh/id_rsa_server1 Host server2 HostName server2.example.com User user2 IdentityFile ~/.ssh/id_rsa_server2
-
Зміна порту SSH:
Змінюючи порт за замовчуванням (22), можна підвищити безпеку. Відредагуйте/etc/ssh/sshd_config
і змініть:Port 2222
Таким чином, заміна паролів на ключі SSH значно підвищує безпеку вашого з’єднання і захищає від багатьох видів атак.