SystemdDoctor
служба не работает sshd права частое

sshd: отказ аутентификации из-за прав на файлы

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

Что это значит

Проверка строгая нарочно: доступный для записи чужим файл с ключами означает, что вход может получить кто угодно. Сообщение об этом sshd пишет в журнал с пометкой «bad ownership or modes».

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

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

  1. Слишком широкие права на домашний каталог

    Права 0775 или 0777 на домашнем каталоге делают ключи ненадёжными, и sshd их игнорирует.

  2. Файл ключей принадлежит не тому пользователю

    После копирования под root владельцем становится root, и sshd отказывается доверять файлу.

  3. Домашний каталог недоступен из-за SELinux

    На системах с SELinux файлу ключей нужна правильная метка. Права при этом верные, и причина не видна.

Диагностика

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

sshd прямо пишет, какой файл его не устроил.

sudo journalctl -u ssh -n 40 --no-pager | grep -iE "bad ownership|authentication|publickey"

Права и владельцы всей цепочки.

ls -ld ~ ~/.ssh ~/.ssh/authorized_keys

Подробный вывод со стороны клиента: видно, какие способы входа предлагались.

ssh -vvv user@host 2>&1 | tail -25

Решение

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

1. Слишком широкие права на домашний каталог
Почему происходит
Права 0775 или 0777 на домашнем каталоге делают ключи ненадёжными, и sshd их игнорирует.
Как проверить
Посмотрите права на каталог и файл ключей.
ls -ld /home/user /home/user/.ssh /home/user/.ssh/authorized_keys
Как исправить
Приведите права к обычным: каталог 0700, файл ключей 0600.
chmod 700 ~/.ssh && chmod 600 ~/.ssh/authorized_keys && chmod 750 ~
2. Файл ключей принадлежит не тому пользователю
Почему происходит
После копирования под root владельцем становится root, и sshd отказывается доверять файлу.
Как проверить
Посмотрите владельца.
ls -l /home/user/.ssh/authorized_keys
Как исправить
Смените владельца на пользователя, который входит.
sudo chown -R user:user /home/user/.ssh
3. Домашний каталог недоступен из-за SELinux
Почему происходит
На системах с SELinux файлу ключей нужна правильная метка. Права при этом верные, и причина не видна.
Как проверить
Посмотрите метки и отказы.
ls -Z /home/user/.ssh/authorized_keys 2>/dev/null
sudo ausearch -m avc -ts recent 2>/dev/null | tail -5
Как исправить
Восстановите контексты в домашнем каталоге.
sudo restorecon -R -v /home/user/.ssh

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

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

sshd[5100]: Authentication refused: bad ownership or modes for directory /home/user
sshd[5100]: Connection closed by authenticating user user <адрес> port N [preauth]

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

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

Источники

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