Linux

Советы по усилению безопасности SSH в Linux: пошаговое руководство

В этой статье расскажем, как усилить безопасность SSH в Linux, чтобы предотвратить незаконный доступ и повысить защиту сервера.

Обновлено 30 июня 2026 г.
10-15 мин
Средняя
FixPedia Team
Применимо к:Ubuntu 22.04Debian 12CentOS 8Rocky Linux 9

Введение

Удалённый доступ через SSH — это мощный инструмент, но по умолчанию он часто остается уязвимым для автоматических атак. В этой статье собраны проверенные приёмы, которые сделают ваше SSH-соединение в Linux надёжным всего за несколько минут. После выполнения шагов вы получите защиту от брутфорса, ограничите права доступа и сможете отслеживать попытки взлома.

Требования

  • Доступ root (или sudo) на целевом сервере.
  • Установленный SSH-сервер (openssh-server).
  • Базовые знания работы с терминалом и редактированием текстовых файлов.
  • Доступ в интернет для поиска обновлений (необязательно).

Пошаговая инструкция

Шаг 1: Отключите аутентификацию по паролю

Откройте конфигурационный файл SSH:

sudo nano /etc/ssh/sshd_config

Найдите строку PasswordAuthentication и измените её значение на no:

PasswordAuthentication no

Сохраните изменения (Ctrl+O, затем Enter) и выйдите (Ctrl+X). Примените настройки:

sudo systemctl restart sshd

Шаг 2: Отключите root‑логин по SSH

Добавьте или измените параметр:

PermitRootLogin no

Сохраните, перезапустите SSH и проверьте результат:

sudo systemctl restart sshd
grep PermitRootLogin /etc/ssh/sshd_config

Шаг 3: Ограничьте пользователей, имеющих доступ по SSH

Определите список разрешённых учётных записей:

AllowUsers alice bob

Сохраните конфигурацию, перезапустите сервис и проверьте:

sudo systemctl restart sshd
grep AllowUsers /etc/ssh/sshd_config

Шаг 4: Измените стандартный порт

Изменение порта снижает нагрузку сканеров. Укажите новый порт, например 2222:

Port 2222

Откройте порт в брандмауэре (пример для ufw):

sudo ufw allow 2222

Перезапустите SSH:

sudo systemctl restart sshd

Шаг 5: Настройте аутентификацию только по публичным ключам

Генерация ключей на клиентской машине

ssh-keygen -t ed25519 -C "workstation"

Копирование открытого ключа на сервер

ssh-copy-id -i ~/.ssh/id_ed25519.pub user@host

Завершение настройки на сервере

Убедитесь, что PubkeyAuthentication включён и PasswordAuthentication отключён:

PubkeyAuthentication yes
PasswordAuthentication no

Сохраните, перезапустите SSH:

sudo systemctl restart sshd

Проверка результата

Проверьте, что настройки вступили в силу:

sshd -t && echo "Конфигурация корректна"

Попробуйте подключиться по SSH, используя ключ:

ssh -i ~/.ssh/id_ed25519 user@host -p 2222

Проверьте активные соединения:

ss -tnlp | grep 2222

Возможные проблемы

  • SSH перестал запускаться – проверьте синтаксис конфигурации: sudo sshd -t. Если ошибка в параметрах, верните предыдущую конфигурацию из бэкапа /etc/ssh/sshd_config.bak.
  • Не удаётся подключиться после смены порта – убедитесь, что брандмауэр действительно открыл новый порт (sudo ufw status или sudo firewall-cmd --list-all).
  • Доступ по ключу отклонён – проверьте права на .ssh (chmod 700 ~/.ssh, chmod 600 ~/.ssh/authorized_keys) и корректность открытого ключа (ssh-keygen -l -f ~/.ssh/id_ed25519.pub).

Следуйте этим советам регулярно, и ваш SSH-сервер станет значительно труднодоступным для автоматизированных атак.

Часто задаваемые вопросы

Зачем нужен харденинг SSH и какие риски он устраняет?
Как быстро проверить, включены ли нежелательные настройки SSH?
Что делать, если после изменений SSH перестал подключаться?
Как обеспечить многофакторную аутентификацию для SSH?

Полезное

Отключите аутентификацию по паролю
Отключите root‑логин по SSH
Ограничьте пользователей, имеющих доступ по SSH
Измените стандартный порт
Настройте аутентификацию только по публичным ключам

Эта статья помогла вам решить проблему?