SystemdDoctor
ssh.service доступчастое

sshd в systemd: отказы запуска и сохранение доступа

У службы ssh цена ошибки выше обычной: неудачный перезапуск может оставить сервер без удалённого доступа. Поэтому порядок работы с ней отдельный: сначала проверка конфигурации, потом перезапуск, и никогда не наоборот. Имя unit различается: ssh.service в Debian и Ubuntu, sshd.service в RHEL.

О службе

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

Вторая особенность — сокет-активация. В части дистрибутивов ssh может работать через ssh.socket: тогда порт слушает systemd, а не сам sshd, и директива Port в sshd_config игнорируется. Порт в этом случае меняется в unit-файле сокета, и попытки править конфигурацию sshd не дают эффекта.

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

Как устроена

Имя unitssh.service в Debian и Ubuntu, sshd.service в RHEL и Fedora
Проверка конфигурацииsudo sshd -t (расширенно — sshd -T)
Сокет-активацияпри активном ssh.socket порт задаётся в сокете, а не в sshd_config
Права на ключи хостазакрытый ключ — 0600 и владелец root, иначе sshd не запустится
Безопасный порядокпроверка sshd -t, затем systemctl reload ssh; отдельная сессия для страховки

Частые ошибки

20 записей базы отмечены за этой службой.

Сообщения журнала

Коды выхода

  • status=1/FAILURE в systemdКод 1/FAILURE означает, что программа запустилась и сама завершилась с ошибкой. Как найти настоящую причину в журнале службы.
  • status=224/PAM в systemdКод 224/PAM: не удалось открыть сеанс PAM для службы. Обычно нет нужного файла настроек в /etc/pam.d.

Сигналы

  • signal=HUP (status=1/HUP) в systemdПроцесс службы завершён сигналом HUP. Обычно это перезагрузка настроек, которую программа поняла как команду выйти.

Ошибки служб

Коды выхода этой службы

Числа в status=N ниже 200 назначает сама программа, 200 и выше — systemd, когда не смог подготовить запуск.

statusЧто означает у этой службыКуда смотреть
1/FAILURE ошибка в sshd_config, занятый порт или неверные права на ключ хоста. разбор
255 нестандартный код части сборок при ошибке разбора конфигурации. разбор

Диагностика

Обязательная команда перед перезапуском: печатает ошибку с номером строки.

sudo sshd -t

Итоговая конфигурация со всеми include и значениями по умолчанию.

sudo sshd -T | head -30

Состояние службы; для RHEL — sshd вместо ssh.

systemctl status ssh --no-pager -l

Работает ли сокет-активация: от этого зависит, где задаётся порт.

systemctl status ssh.socket --no-pager | head -8

Права на закрытые ключи хоста: должны быть 0600 и root.

sudo ls -l /etc/ssh/ssh_host_*_key

Параметры unit, которые тут важны

  • ExecReload=перезагрузка настроек без разрыва существующих сессий
  • Restart=для ssh обычно on-failure: важно, чтобы доступ восстанавливался сам
  • Type=notify в современных сборках, forking в старых

Частые вопросы

Поменял Port в sshd_config, перезапустил — порт не изменился. Почему?

Скорее всего активна сокет-активация: порт слушает ssh.socket, и конфигурация sshd тут не при чём. Проверьте systemctl status ssh.socket и меняйте ListenStream в сокете.

Как безопасно перезапускать ssh на удалённом сервере?

Сначала sshd -t. Затем reload вместо restart — существующие сессии не рвутся. Держите вторую открытую сессию до проверки нового подключения: она позволит откатить правку, если что-то пойдёт не так.

Источники

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