SystemdDoctor
мешает работе sshd нагрузка

sshd: отказ в подключении из-за MaxStartups

Параметр MaxStartups ограничивает число подключений, не прошедших аутентификацию. Это защита от наплыва: при превышении часть новых соединений отклоняется случайным образом. Под нагрузкой от систем развёртывания это выглядит как случайные отказы.

Вероятные причины

По порядку: сверху то, что встречается чаще.

  1. Много одновременных подключений от системы развёртывания

    Средства управления конфигурацией подключаются ко многим машинам сразу и могут открывать несколько соединений на машину.

  2. Подбор пароля извне

    Поток попыток входа исчерпывает предел, и законные подключения тоже отклоняются. Это и есть назначение защиты.

  3. Медленная аутентификация держит соединения

    Если проверка идёт через внешний каталог, каждое подключение долго остаётся незавершённым. Предел исчерпывается при небольшом числе клиентов.

Диагностика

Команды идут в том порядке, в котором их стоит выполнять: каждая следующая проверяет то, что осталось после предыдущей.

Действующие пределы.

sudo sshd -T | grep -iE "maxstartups|maxsessions"

Записи об отказах из-за предела.

sudo journalctl -u ssh -n 50 --no-pager | grep -i maxstartups

Решение

Решение своё для каждой причины. Сначала определите, какая из них ваша, — иначе правки наложатся друг на друга.

1. Много одновременных подключений от системы развёртывания
Почему происходит
Средства управления конфигурацией подключаются ко многим машинам сразу и могут открывать несколько соединений на машину.
Как проверить
Посмотрите значение и записи об отказах.
sudo sshd -T | grep -i maxstartups
sudo journalctl -u ssh -n 40 --no-pager | grep -i "exceeded MaxStartups"
Как исправить
Поднимите предел с учётом нагрузки или включите повторное использование соединений на стороне клиента.
2. Подбор пароля извне
Почему происходит
Поток попыток входа исчерпывает предел, и законные подключения тоже отклоняются. Это и есть назначение защиты.
Как проверить
Посмотрите частоту неудачных попыток.
sudo journalctl -u ssh --since "1 hour ago" --no-pager | grep -ci "failed password"
Как исправить
Ограничьте доступ по адресам, включите защиту от подбора и отключите вход по паролю: тогда предел перестанет исчерпываться.
3. Медленная аутентификация держит соединения
Почему происходит
Если проверка идёт через внешний каталог, каждое подключение долго остаётся незавершённым. Предел исчерпывается при небольшом числе клиентов.
Как проверить
Посмотрите время входа и настройки аутентификации.
sudo sshd -T | grep -iE "usedns|gssapi"
Как исправить
Отключите ненужные способы аутентификации и обратное разрешение имён: это заметно ускоряет вход.

Пример вывода

Предел незавершённых подключений исчерпан. Пример показательный: он собран на тестовой машине специально для этой страницы, а не взят из чужого журнала.

sshd[1100]: error: beginning MaxStartups throttling
sshd[1100]: drop connection #11 from [<адрес>]:54321 on [<адрес>]:22 past MaxStartups

Связанные ошибки

  • sshd: Too many authentication failures Соединение обрывается до ввода пароля: клиент перебрал все ключи из агента. Как ограничить набор ключей.
  • Connection refused в журнале службы Соединение отклонено: служба не может подключиться к базе, кешу или другому сервису. Порядок запуска, адрес, брандмауэр.
  • Gunicorn: WORKER TIMEOUT в журнале службы Рабочие процессы Gunicorn убиваются по таймауту: медленные запросы, блокирующие вызовы, неверный тип обработчика.
  • Host key verification failed при подключении к серверу Клиент отказывается подключаться: ключ хоста изменился. Когда это переустановка, а когда повод насторожиться.
  • MySQL: Too many connections База отказывает в новых подключениях: исчерпан max_connections или предел дескрипторов службы.
  • PostgreSQL: too many clients already База отказывает в подключениях: исчерпан max_connections. Как считать значение и зачем пул соединений.
  • kernel: TCP: request_sock … overflow Соединения теряются при наплыве: переполнена очередь ожидающих соединений. Как считать somaxconn и backlog.
  • nginx: worker_connections are not enough nginx под нагрузкой: не хватает соединений на рабочий процесс. Как считать worker_connections вместе с LimitNOFILE.

Где встречается чаще всего

Источники

  • Документация OpenSSH: MaxStartups документация программы
    сверено 15 сентября 2026
  • Воспроизведено на тестовой машине, systemd 255 (Ubuntu 24.04)
    Воспроизведено параллельными подключениями при MaxStartups=3.
    собственная проверка, systemd 255
    сверено 15 сентября 2026