Як захистити SSH на Linux VPS

Автор: Інженерна команда ONIE · Оновлено 12 листопада 2026 р. · Читання: 2 хв

Публічний VPS отримує автоматичні спроби входу протягом кількох хвилин після запуску. Ці кроки значно ускладнюють атаки на SSH. Їх написано для Ubuntu або Debian; якщо сервер ще не створено, можна орендувати Linux VPS і почати з чистого образу. Не закривайте поточну SSH-сесію, доки не перевірите нові налаштування з другого вікна.

1. Створіть звичайного користувача з sudo

adduser deploy
usermod -aG sudo deploy

2. Використовуйте SSH-ключі замість паролів

На вашому комп'ютері:

ssh-keygen -t ed25519 -C "you@example.com"
ssh-copy-id deploy@YOUR_SERVER_IP
ssh deploy@YOUR_SERVER_IP

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

3. Вимкніть вхід за паролем і під root

Створіть файл /etc/ssh/sshd_config.d/99-hardening.conf:

PasswordAuthentication no
PermitRootLogin no
PubkeyAuthentication yes
MaxAuthTries 3

Перевірте синтаксис і перезавантажте службу. Служба називається ssh в Ubuntu і Debian та sshd в системах на основі RHEL:

sudo sshd -t && sudo systemctl reload ssh

Відкрийте другий термінал і увійдіть знову. Лише після цього закрийте стару сесію.

4. Увімкніть фаєрвол

sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw allow OpenSSH
sudo ufw enable
sudo ufw status verbose

Відкривайте лише потрібні порти, наприклад 80 і 443 для веб-сервера. Ви також можете обмежити доступ до SSH своєю IP-адресою правилом фаєрвола в хмарній консолі.

5. Блокуйте повторні невдалі спроби за допомогою Fail2ban

sudo apt install -y fail2ban

Створіть файл /etc/fail2ban/jail.local:

[sshd]
enabled = true
maxretry = 5
findtime = 10m
bantime = 1h
sudo systemctl enable --now fail2ban
sudo fail2ban-client status sshd

6. Встановлюйте оновлення безпеки автоматично

sudo apt install -y unattended-upgrades
sudo dpkg-reconfigure --priority=low unattended-upgrades

7. Додаткові можливості

  • Зміна порту SSH зменшує кількість записів у журналах, але сама по собі не є заходом безпеки.
  • Захистіть приватний ключ парольною фразою і зберігайте резервну копію в надійному місці.
  • Переглядайте входи командами last і sudo journalctl -u ssh --since today.
  • Зробіть знімок після налаштування сервера, щоб мати чисту базову точку для відновлення.

Якщо ви втратили доступ, скористайтеся консоллю браузера в хмарній панелі, щоб увійти та виправити конфігурацію. Наш посібник із захисту від DDoS описує наступний рівень захисту.

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

Чи безпечно вимикати вхід під root?

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

Чи потрібен Fail2ban, якщо я використовую лише ключі?

Це необов'язково. Коли вхід за паролем вимкнено, атака перебором не має шансів на успіх, але Fail2ban зменшує кількість записів у журналах і навантаження.

Що робити, якщо я втратив SSH-ключ?

Скористайтеся консоллю в хмарній панелі, щоб увійти, додайте новий публічний ключ до ~/.ssh/authorized_keys і видаліть старий.

Джерела та додаткове читання

Більше посібників з VPS