SSH Linux, OpenSSH client/server

После изменения sshd_config не стартует sshd

  • Обновлено
  • Чтение ≈ 3 минуты
  • Нужны права администратора

Краткий ответ

После изменения файла sshd_config демон OpenSSH не запускается. Главная задача — найти ошибку, не потеряв текущий доступ к удалённому серверу.

В этой статье
  1. Как распознать проблему и где применимы действия
  2. Возможные причины и диагностические признаки
  3. Пошаговая диагностика и исправление
  4. Как проверить, что проблема действительно устранена
  5. Если результат не получен

#Как распознать проблему и где применимы действия

После изменения файла sshd_config демон OpenSSH не запускается. Главная задача — найти ошибку, не потеряв текущий доступ к удалённому серверу. Перед выполнением определите название программы, редакцию Linux и управляющий сервис. Значения примеров в командах не являются готовой конфигурацией вашего устройства.

#Возможные причины и диагностические признаки

Возможная причинаКак узнатьЧто делать
Синтаксис или неверный путьsshd -t выдаёт строку ошибки или unknown optionВернуть корректную директиву из резервной копии
Порт занятСинтаксис верен, но в журнале Bind to port failedНайти процесс и ListenAddress
Ошибка в включённом конфигурационном фрагментеОсновной файл выглядит верно, но Include подтягивает конфликтПроверить include-файлы и итог sshd -T

#Пошаговая диагностика и исправление

  1. Шаг 1. Не закрывайте рабочий SSH-сеансЕсли доступ сохранился, держите его открытым. При потере соединения нужна консоль хостера или локальный экран. Не выполняйте restart до проверки файла. Команды sudo или sudoedit выполняются с полномочиями администратора; если sudo не установлен, используйте разрешённую административную сессию.
  2. Терминал Linux на сервере/клиенте, указанном в шаге
    Linux · Терминал (Bash)КомандаНужен sudo
    Терминал Linux на сервере/клиенте, указанном в шаге. Нужны права администратора; имя.service, пути, адрес server.example.org, имена пользователей и другие демонстрационные значения необходимо заменить фактическими. После команды сравните результат с описанием шага; при ошибке остановитесь и выясните её причину.
    sudo systemctl status ssh.service sshd.service --no-pager
  1. Шаг 2. Проверьте синтаксис всего набора файловКоманда -t проверяет конфигурацию, включая Include; отсутствие вывода с кодом 0 означает успешную синтаксическую проверку. В некоторых системах бинарный файл расположен не в /usr/sbin/sshd — найдите его. Команды sudo или sudoedit выполняются с полномочиями администратора; если sudo не установлен, используйте разрешённую административную сессию.
  2. Терминал Linux на сервере/клиенте, указанном в шаге
    Linux · Терминал (Bash)КомандаНужен sudo
    Терминал Linux на сервере/клиенте, указанном в шаге. Нужны права администратора; имя.service, пути, адрес server.example.org, имена пользователей и другие демонстрационные значения необходимо заменить фактическими. После команды сравните результат с описанием шага; при ошибке остановитесь и выясните её причину.
    sudo /usr/sbin/sshd -t
  1. Шаг 3. Изучите журнал неудачного запускаУ разных дистрибутивов служба называется ssh либо sshd. Найдите Invalid option, Bad configuration option, Bind to port, Missing privilege separation directory. Команды sudo или sudoedit выполняются с полномочиями администратора; если sudo не установлен, используйте разрешённую административную сессию.
  2. Терминал Linux на сервере/клиенте, указанном в шаге
    Linux · Терминал (Bash)КомандаНужен sudo
    Терминал Linux на сервере/клиенте, указанном в шаге. Нужны права администратора; имя.service, пути, адрес server.example.org, имена пользователей и другие демонстрационные значения необходимо заменить фактическими. После команды сравните результат с описанием шага; при ошибке остановитесь и выясните её причину.
    sudo journalctl -b -u ssh.service -u sshd.service -n 100 --no-pager
  1. Шаг 4. Посмотрите эффективные параметрыКоманда -T нужна после успешной -t; для Match можно использовать -C. Проверьте port, listenaddress и authentication без копирования чувствительных данных в публичную переписку. Команды sudo или sudoedit выполняются с полномочиями администратора; если sudo не установлен, используйте разрешённую административную сессию.
  2. Терминал Linux на сервере/клиенте, указанном в шаге
    Linux · Терминал (Bash)КомандаНужен sudo
    Терминал Linux на сервере/клиенте, указанном в шаге. Нужны права администратора; имя.service, пути, адрес server.example.org, имена пользователей и другие демонстрационные значения необходимо заменить фактическими. После команды сравните результат с описанием шага; при ошибке остановитесь и выясните её причину.
    sudo /usr/sbin/sshd -T | grep -Ei '^(port|listenaddress|passwordauthentication|pubkeyauthentication|permitrootlogin) '
  1. Шаг 5. Проверьте, свободен ли нужный портКоманда ss показывает открытые TCP-порты. Если на 22 слушает другой процесс, не завершайте его без понимания назначения; возможно, включена systemd socket activation. Команды sudo или sudoedit выполняются с полномочиями администратора; если sudo не установлен, используйте разрешённую административную сессию.
  2. Терминал Linux на сервере/клиенте, указанном в шаге
    Linux · Терминал (Bash)КомандаНужен sudo
    Терминал Linux на сервере/клиенте, указанном в шаге. Нужны права администратора; имя.service, пути, адрес server.example.org, имена пользователей и другие демонстрационные значения необходимо заменить фактическими. После команды сравните результат с описанием шага; при ошибке остановитесь и выясните её причину.
    sudo ss -ltnp
  1. Шаг 6. Исправьте только обнаруженную строкуОткройте файл с правами администратора и сохраните прежнюю копию отдельно. После исправления ещё раз запустите sshd -t; только затем выполняйте reload или restart названной службы при наличии запасной консоли. Команды sudo или sudoedit выполняются с полномочиями администратора; если sudo не установлен, используйте разрешённую административную сессию.
    Linux · Терминал (Bash)С осторожностьюНужен sudo
    Терминал Linux на сервере/клиенте, указанном в шаге. Нужны права администратора; имя.service, пути, адрес server.example.org, имена пользователей и другие демонстрационные значения необходимо заменить фактическими. После команды сравните результат с описанием шага; при ошибке остановитесь и выясните её причину.
    sudoedit /etc/ssh/sshd_config
    sudo /usr/sbin/sshd -t

    Команда может изменить состояние системы или её настройки. Проверьте параметры и последствия перед запуском.

#Как проверить, что проблема действительно устранена

Из нового терминала убедитесь, что можно войти по ключу/паролю, предусмотренному политикой безопасности. Пока вход не проверен, не закрывайте старое соединение.

#Если результат не получен

Вернитесь к самому раннему отличающемуся результату диагностики и проверьте точный текст ошибки, текущую загрузку и фактическую версию программы. Не повторяйте опасную команду с другими правами наугад. Если это рабочий сервер, передайте администратору обезличенные отрывки журнала за момент сбоя и уже выполненные действия.

Так эту ошибку тоже называют

Источники и обновления

Последнее обновление статьи: 2 ноября 2026. Версии программ и интерфейсы меняются — если шаги не совпадают с вашей версией, сверяйтесь с документацией производителя.