SSH Hardening: безопасная настройка sshd_config на VPS

VDS / VPS серверы · 19.04.2026
SSH Hardening: безопасная настройка sshd_config на VPS

SSH — основной способ доступа к VPS. По умолчанию он работает на порту 22 и доступен для атак brute-force. Правильная настройка снижает риск взлома до минимума.

Безопасный /etc/ssh/sshd_config

# Сменить стандартный порт (опционально, но рекомендуется)
Port 2222

# Запретить вход под root
PermitRootLogin no

# Разрешить вход только определённым пользователям
AllowUsers deploy admin

# Отключить вход по паролю (только ключи!)
PasswordAuthentication no
ChallengeResponseAuthentication no
UsePAM no

# Отключить X11 forwarding
X11Forwarding no

# Таймаут неактивной сессии (5 минут)
ClientAliveInterval 300
ClientAliveCountMax 2

# Только IPv4 (если IPv6 не нужен)
AddressFamily inet

# Протокол SSH 2 (устаревший 1 уже не используется, но явно укажем)
Protocol 2

# Алгоритмы шифрования (современные)
KexAlgorithms curve25519-sha256,diffie-hellman-group14-sha256
Ciphers aes256-gcm@openssh.com,chacha20-poly1305@openssh.com
MACs hmac-sha2-256-etm@openssh.com,hmac-sha2-512-etm@openssh.com

Применить изменения

# Проверить синтаксис перед перезапуском!
sudo sshd -t

# Перезапустить SSH
sudo systemctl restart sshd

# Не закрывайте текущую сессию — откройте новое окно и проверьте вход
⚠️ Не закрывайте текущую SSH-сессию до проверки нового входа. Если допустили ошибку — можно потерять доступ к серверу. Всегда проверяйте в новой вкладке.

Генерация и добавление SSH-ключей

# На клиенте — генерация ключа (Ed25519 — современный и безопасный)
ssh-keygen -t ed25519 -C "myserver" -f ~/.ssh/myserver

# Копировать публичный ключ на сервер
ssh-copy-id -i ~/.ssh/myserver.pub user@server.example.com

# Вручную добавить публичный ключ
mkdir -p ~/.ssh
chmod 700 ~/.ssh
nano ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys

Fail2Ban — защита от brute-force

sudo apt install fail2ban -y

# /etc/fail2ban/jail.local
[sshd]
enabled = true
port = 2222          # ваш SSH порт
maxretry = 5         # попыток до бана
bantime = 3600       # бан на 1 час
findtime = 600       # окно в 10 минут

sudo systemctl enable --now fail2ban

# Посмотреть забаненные IP
sudo fail2ban-client status sshd
💡 Чеклист безопасного SSH:
✓ Вход только по ключам (PasswordAuthentication no)
✓ PermitRootLogin no
✓ Нестандартный порт
✓ AllowUsers — только нужные пользователи
✓ Fail2Ban активен
✓ UFW разрешает только SSH с нужных IP
← Назад в базу знаний Задать вопрос поддержке