SSH
SSH (Secure Shell) это зашифрованный протокол для удалённого входа и администрирования Linux сервера. Почти любая автоматизированная атака на небольшой VPS начинается именно с SSH, потому что это один из немногих сервисов, открытых на сервере по умолчанию.
Как обычно взламывают доступ по SSH
Большинство успешных взломов серверов, начинающихся через SSH, не связаны со взломом самого протокола. Причина обычно в слабых или повторно использованных паролях, ключах, которые не отозвали после увольнения сотрудника, или в конфигурации, которая до сих пор разрешает прямой вход под root. Сам SSH надёжен, риск обычно в том, как он настроен.
Как усилить SSH без потери доступа
Самый эффективный базовый набор мер: отключить вход по паролю в пользу входа по ключу, запретить прямой вход под root и ограничить, каким аккаунтам и с каких IP разрешено подключаться. Ни одна из этих мер не требует замены SSH, только более строгой настройки.
Подробную настройку, от входа только по ключу до ограничения попыток подключения, см. здесь: руководство по усилению защиты SSH.
Как проверить, что SSH сервер делает на самом деле
Файл конфигурации, который вы правили месяц назад, ничего не доказывает. Спросите работающую систему. Четыре быстрые проверки отвечают на большинство вопросов:
sudo ss -tlnp | grep sshd
sudo sshd -T | grep -iE '^(port|permitrootlogin|passwordauthentication|pubkeyauthentication|allowusers) '
ssh -V
sudo journalctl -u ssh --since today | grep -E 'Accepted|Failed'
Первая команда выводит слушающие TCP сокеты вместе с процессом-владельцем (-t TCP, -l слушающие, -n числовой вывод, -p процесс), так что видно, на каком адресе и порту работает sshd. Вторая использует расширенный тестовый режим sshd, который, согласно руководству sshd, печатает действующую конфигурацию, а не содержимое файла, поэтому подключаемые файлы и переопределения уже учтены. Запускайте её от root, потому что sshd должен прочитать свои ключи хоста. Третья показывает версию клиента, четвёртая читает недавние входы. В Debian и Ubuntu служба обычно называется ssh, в семействе Red Hat sshd. Повторяйте проверку после каждого изменения и каждого инцидента, потому что конфигурация незаметно расходится с ожиданиями.
Ключи хоста: половина доверия в SSH, которую часто пропускают
Ваш вход доказывает серверу, кто вы. Ключ хоста доказывает вам, что это именно ваш сервер. При первом подключении ssh показывает отпечаток открытого ключа сервера и, после вашего согласия, запоминает его в ~/.ssh/known_hosts. Руководство ssh сообщает, что ssh предупреждает, если идентификация известного хоста позднее изменилась. По умолчанию (StrictHostKeyChecking ask) он спрашивает перед тем, как доверять неизвестному ключу, поэтому не вводите "yes" по привычке.
Сравните отпечаток до согласия. Один раз откройте веб-консоль провайдера и выполните на сервере:
ssh-keygen -lf /etc/ssh/ssh_host_ed25519_key.pub
Результат должен совпасть с тем, что показывает ваш клиент. Смена ключа нормальна после пересборки или переустановки сервера, потому что генерируются новые ключи хоста. Убедившись, что причина в этом, удалите устаревшую запись командой ssh-keygen -R your-server и подключитесь заново. Если на сервере вы ничего не меняли, остановитесь и разберитесь, а не пропускайте предупреждение: оно может означать перехват соединения. Если вы подозреваете сам сервер, порядок действий описан в руководстве по реагированию на взлом.
Связанные термины: Аутентификация по ключу, sshd_config, Вход под root, Атака подбором, PermitRootLogin, Bastion host (бастионный хост), known_hosts, Проброс SSH-агента (agent forwarding), SSH X11 forwarding (проброс X11), ssh-keygen (создание ключей OpenSSH).
В новостях: CVE-2026-35414 показывает, как один необработанный символ в сертификатной аутентификации SSH превратился в полный обход входа.
Часто задаваемые вопросы
Безопасно ли оставлять SSH открытым для всего интернета?
Так делают часто, но риск выше, чем нужен. Сочетание входа по ключу, ограниченного списка разрешённых IP там, где это возможно, и rate limiting через fail2ban заметно снижает риск без потери удалённого доступа.
Делает ли смена порта SSH сервер безопасным?
Нет. Это снижает шум от автоматических сканирований, но не является мерой защиты само по себе. Это не должно заменять вход по ключу и firewall.
Можно ли полностью отключить SSH?
На некоторых конфигурациях да, в пользу консольного доступа от провайдера, но большинство команд оставляют SSH включённым, так как это быстрее для повседневного администрирования. Важнее ограничить, кто может его использовать, чем полностью его убирать.
Что означает SSH?
SSH означает Secure Shell. Это зашифрованный сетевой протокол, который позволяет администратору входить на удалённый сервер и выполнять на нём команды, заменяя более старые незашифрованные инструменты, такие как Telnet и rlogin.
Для чего используется SSH?
Для удалённого администрирования: входа в командную строку сервера, выполнения команд, передачи файлов через SFTP или SCP, которые используют то же соединение SSH, и безопасного туннелирования другого трафика.
Как увидеть, какие настройки SSH действуют на самом деле?
Выполните sshd -T от root. Команда печатает действующую конфигурацию с учётом подключаемых файлов и переопределений, что надёжнее чтения sshd_config глазами. Добавьте -C с пользователем и адресом, чтобы увидеть, как блоки Match применяются к конкретному подключению.
Что означает предупреждение об изменённом ключе хоста?
Сервер предъявил другой ключ, чем сохранённый в вашем файле known_hosts. После пересборки или переустановки это ожидаемо, но если вы сервер не меняли, остановитесь и проверьте отпечаток через консоль провайдера, прежде чем подключаться.
Хотите увидеть, в каком состоянии ваш сервер?
Запустите бесплатную read-only проверку сервера или откройте Security Lab и посмотрите цикл обнаружение, сдерживание, восстановление, проверка в действии.
Получить бесплатную проверку сервераОткрыть Security Lab