sshd: Bad configuration option и отказ запуска
sshd разбирает конфигурацию при запуске и отказывается стартовать при любой ошибке. Опасность в том, что при неудачном перезапуске сервер остаётся без удалённого доступа — поэтому проверка sshd -t обязательна.
Что это значит
Частая причина после обновления — устаревшие параметры. Алгоритмы и настройки, поддерживавшиеся прежней версией, могут быть удалены: например HostKey для устаревшего типа ключа или снятые с поддержки алгоритмы.
Вероятные причины
По порядку: сверху то, что встречается чаще.
-
Неизвестный или устаревший параметр
Параметр удалён в новой версии или написан с опечаткой. sshd сообщает файл, строку и имя параметра.
-
Ошибка во включённом файле
Современные sshd_config включают каталог с дополнительными файлами. Ошибка в любом из них ломает запуск целиком.
-
Неверные права или отсутствие ключа хоста
sshd отказывается работать, если закрытый ключ хоста доступен другим или отсутствует.
Диагностика
Команды идут в том порядке, в котором их стоит выполнять: каждая следующая проверяет то, что осталось после предыдущей.
Обязательная проверка: файл, строка и текст ошибки.
sudo sshd -tИтоговая конфигурация со всеми включениями и значениями по умолчанию.
sudo sshd -T | head -20Состояние службы; в RHEL — sshd.
systemctl status ssh --no-pager -lРешение
Решение своё для каждой причины. Сначала определите, какая из них ваша, — иначе правки наложатся друг на друга.
- Почему происходит
- Параметр удалён в новой версии или написан с опечаткой. sshd сообщает файл, строку и имя параметра.
- Как проверить
-
Запустите проверку конфигурации.
sudo sshd -t
- Как исправить
- Уберите или исправьте параметр по сообщению проверки. Проверять надо до перезапуска, а не после.
- Почему происходит
- Современные sshd_config включают каталог с дополнительными файлами. Ошибка в любом из них ломает запуск целиком.
- Как проверить
-
Посмотрите включаемые файлы и их содержимое.
sudo grep -i "^include" /etc/ssh/sshd_config sudo ls -l /etc/ssh/sshd_config.d/
- Как исправить
- Найдите файл по сообщению проверки и исправьте. Порядок включения важен: параметр из первого файла побеждает.
- Почему происходит
- sshd отказывается работать, если закрытый ключ хоста доступен другим или отсутствует.
- Как проверить
-
Посмотрите права на ключи.
sudo ls -l /etc/ssh/ssh_host_*_key
- Как исправить
-
Верните права 0600 и владельца root. Отсутствующие ключи создаются командой генерации.
sudo chmod 600 /etc/ssh/ssh_host_*_key && sudo ssh-keygen -A
Пример вывода
Устаревший параметр после обновления. Пример показательный: он собран на тестовой машине специально для этой страницы, а не взят из чужого журнала.
× ssh.service - OpenBSD Secure Shell server
Active: failed (Result: exit-code) since Mon 2026-09-15 12:02:41 MSK; 2s ago
sshd[4200]: /etc/ssh/sshd_config line 24: Bad configuration option: UsePrivilegeSeparation
sshd[4200]: /etc/ssh/sshd_config: terminating, 1 bad configuration options
systemd[1]: ssh.service: Main process exited, code=exited, status=255/EXCEPTION
Связанные ошибки
- status=255/EXCEPTION в systemd Код 255/EXCEPTION: программа завершилась с кодом 255 либо код используется для передачи аварийного завершения. Как различить случаи.
- status=1/FAILURE в systemd Код 1/FAILURE означает, что программа запустилась и сама завершилась с ошибкой. Как найти настоящую причину в журнале службы.
- Permission denied в журнале службы Отказ в доступе у службы systemd: права на файл, каталоги по пути, пользователь службы, параметры изоляции, SELinux и AppArmor.
- Apache: Invalid command — не включён модуль Apache не запускается: директива требует модуль, который не подключён. Как найти нужный модуль и включить.
- Docker: unable to configure the Docker daemon with file daemon.json Демон Docker не запускается из-за ошибки в /etc/docker/daemon.json: неверный JSON или неизвестный ключ.
- Service has more than one ExecStart= setting Несколько команд запуска допустимы только при Type=oneshot. Как правильно заменить команду в переопределении.
- Unit file is bad и ошибки разбора unit-файла systemd не может разобрать unit-файл: неизвестные параметры, ошибки в секциях, недопустимые значения. Как найти проблемную строку.
- Unit is masked: служба запрещена к запуску Сообщение Unit is masked: unit заблокирован ссылкой на /dev/null. Как найти и снять маскировку.
Где встречается чаще всего
Источники
- Документация OpenSSH: sshd_config
-
Воспроизведено на тестовой машине, systemd 255 (Ubuntu 24.04)
Воспроизведено параметром UsePrivilegeSeparation, удалённым в новых версиях.