Як налаштувати та захистити сервер SSH (sshd) на практиці
09:23, 25.05.2026
Secure Shell (SSH) є основою віддаленого управління серверами. Його серверний компонент, sshd, пропонує потужні можливості налаштування як для звичайних користувачів, так і для корпоративних адміністраторів. У цьому посібнику описано, як налаштувати та захистити sshd, а також наведено практичні приклади, які допоможуть вам зрозуміти та застосувати найкращі практики.
Як взаємодіють файли конфігурації
Основним файлом конфігурації для демона SSH є /etc/ssh/sshd_config. Цей файл визначає, як сервер поводиться під час прийняття SSH-з'єднань.
На відміну від цього, налаштування клієнта зберігаються у файлі /etc/ssh/ssh_config або у файлі користувача ~/.ssh/config. Однак саме у sshd_config адміністратори контролюють методи автентифікації, правила доступу та поведінку сеансів.
Коли демон SSH запускається або перезавантажується, він зчитує sshd_config у порядку зверху вниз. Якщо директива повторюється, зазвичай діє останнє дійсне входження. Після внесення змін виконайте:
sudo systemctl restart sshd
Або на деяких системах:
sudo service ssh restart
Щоб перевірити конфігурацію перед перезапуском:
sshd -t
Типові налаштування для особистого використання SSH
Якщо ви керуєте особистим VPS або домашньою лабораторією, ви можете підвищити безпеку та зручність за допомогою кількох простих налаштувань:
Порт 2222
PermitRootLogin no
PasswordAuthentication no
AllowUsers alice
Ці налаштування змінюють стандартний порт SSH, вимикають вхід користувача root, вимагають автентифікації за допомогою ключів та обмежують доступ до певних користувачів. Завжди створюйте резервну копію оригінального файлу перед внесенням змін.
Загальні налаштування SSH для організацій
У корпоративних середовищах конфігурація SSH повинна забезпечувати баланс між зручністю використання, відповідністю вимогам та безпекою. Нижче наведено основні налаштування, які організації часто змінюють у sshd_config.
Налаштування політики шифрування
Встановіть надійні сучасні алгоритми шифрування для захисту даних під час передачі. Використовуйте директиви Ciphers, MACs та KexAlgorithms :
Ciphers chacha20-poly1305@openssh.com,aes256-gcm@openssh.com
MACs hmac-sha2-512-etm@openssh.com,hmac-sha2-256-etm@openssh.com
KexAlgorithms curve25519-sha256,ecdh-sha2-nistp521
Ці налаштування видаляють застарілі алгоритми та забезпечують дотримання найкращих практик у галузі криптографії.
Увімкнення детального журналу
Для цілей аудиту та налагодження збільште рівень деталізації журналу:
LogLevel VERBOSE
Це надає більш детальну інформацію про активність користувачів та спроби автентифікації, що корисно для моніторингу безпеки.
Налаштування шляху для AuthorizedKeysFile
Щоб централізувати або налаштувати місце, звідки зчитуються відкриті ключі:
AuthorizedKeysFile /etc/ssh/authorized_keys/%u
У цьому прикладі відкритий ключ кожного користувача зберігається у спільному каталозі, замінюючи %u на ім’я користувача.
Контроль доступу root
Вхід root повинен суворо контролюватися або бути повністю вимкненим:
PermitRootLogin prohibit-password
Це дозволяє вхід root лише через аутентифікацію на основі ключів. Щоб повністю вимкнути доступ root:
PermitRootLogin no
Відображення банера входу
Щоб відповідати стандартам відповідності або відображати юридичне попередження, налаштуйте банер входу:
Banner /etc/issue.net
Заповніть /etc/issue.net бажаним повідомленням, наприклад:
Несанкціонований доступ до цієї системи заборонено.
Уся активність відстежується та реєструється.
Управління налаштуваннями переадресації портів
Обмежте або увімкніть переадресацію портів залежно від внутрішньої політики:
AllowTcpForwarding no
PermitTunnel no
X11Forwarding no
Для користувачів, яким потрібне безпечне тунелювання, ці параметри можна вибірково увімкнути.
Використання аутентифікації на основі сертифікатів
Для середовищ, що керують великою кількістю користувачів, сертифікати SSH забезпечують масштабований контроль доступу. Створіть ключ CA та підпишіть відкриті ключі користувачів:
ssh-keygen -s ca_key -I user_id user_key.pub
У файлі sshd_config вкажіть довірений CA:
TrustedUserCAKeys /etc/ssh/ca.pub
Це дозволяє автентифікувати будь-який ключ, підписаний вказаним CA, що спрощує управління користувачами.
Пояснення синтаксису та структури sshd_config
Синтаксис sshd_config простий: одна директива на рядок, за якою йдуть її значення. Коментарі починаються з #.
# Це коментар
Порт 22
PermitRootLogin no
Директиви нечутливі до регістру, але для зручності читання слід дотримуватися загальноприйнятого форматування. Поширені помилки:
- Пробіли в кінці рядка
- Неправильні значення параметрів
- Повторення суперечливих директив
Щоб застосувати зміни:
sudo systemctl reload sshd
Або скористайтеся sshd -t перед перезапуском, щоб переконатися у правильності синтаксису.