SSH: що це таке, навіщо використовується та як налаштувати на Linux
1. Що таке SSH
SSH (Secure Shell) — це криптографічний мережевий протокол, який використовується для безпечного віддаленого доступу до операційних систем, серверів і мережевих пристроїв через незахищені мережі.
Основні функції SSH:
-
шифрування трафіку між клієнтом і сервером;
-
захист облікових даних;
-
автентифікація користувачів і серверів;
-
цілісність даних.
Стандартний порт SSH:
2. Навіщо використовується SSH
2.1 Віддалене адміністрування
-
керування Linux/Unix-серверами без GUI;
-
виконання команд у shell;
-
робота з сервісами та логами.
2.2 Безпечна передача файлів
SSH є базою для:
-
SCP — копіювання файлів;
-
SFTP — повноцінний файловий доступ.
2.3 Тунелювання та проксіювання
-
захищений доступ до внутрішніх сервісів;
-
порт-форвардинг (локальний, віддалений, dynamic);
-
bastion / jump host архітектура.
2.4 Автоматизація та DevOps
-
CI/CD деплой;
-
Ansible, Git, Docker, Kubernetes;
-
доступ без пароля через ключі.
3. Принцип роботи SSH (коротко)
-
Клієнт ініціює з’єднання з сервером.
-
Сервер надсилає свій публічний ключ.
-
Відбувається узгодження алгоритмів шифрування.
-
Користувач автентифікується (пароль або ключ).
-
Створюється зашифрований канал зв’язку.
4. Генерація SSH-ключів у Linux
4.1 Рекомендовані алгоритми
| Алгоритм | Коментар |
|---|---|
| ed25519 | Сучасний, швидкий, безпечний |
| RSA 4096 | Для сумісності зі старими системами |
4.2 Генерація ключа ed25519
Коментарі:
-
ssh-keygen— утиліта для генерації SSH-ключів -
-t ed25519— тип криптографічного алгоритму -
-C "user@hostname"— коментар для ідентифікації ключа
Під час виконання:
-
система запропонує шлях збереження ключа;
-
рекомендовано встановити passphrase.
4.3 Розташування ключів
Приватний ключ не можна передавати та зберігати на сервері.
5. Додавання ключа на сервер
5.1 Автоматичне копіювання ключа
Коментарі:
-
копіює публічний ключ у
~/.ssh/authorized_keys; -
створює каталог
.ssh, якщо його не існує; -
виставляє коректні права доступу.
5.2 Ручне додавання ключа
Коментарі:
-
cat id_ed25519.pub— читає публічний ключ; -
ssh user@server_ip— підключення до сервера; -
authorized_keys— файл дозволених ключів.
6. Підключення до сервера
6.1 Стандартне підключення
6.2 Підключення з явним ключем
Коментар:
-
-i— вказує конкретний файл приватного ключа.
7. Налаштування SSH-сервера (sshd)
Основний конфігураційний файл:
7.1 Рекомендована безпечна конфігурація
7.2 Перезапуск сервісу
Коментар:
-
застосовує зміни конфігурації;
-
без перезапуску налаштування не активні.
8. Клієнтська конфігурація SSH
Файл:
8.1 Приклад конфігурації
Підключення:
9. SSH Port Forwarding
9.1 Локальний порт-форвардинг
Коментарі:
-
-L— локальний тунель; -
3306— локальний порт; -
дозволяє безпечно підключитись до БД.
10. Типові помилки безпеки
-
використання
PasswordAuthentication yes; -
дозвіл
PermitRootLogin; -
відсутність passphrase;
-
відкритий порт 22 без firewall / fail2ban.