Как явно не упоминалось, sshd по умолчанию очень строг в отношении прав доступа к authorized_keys
файлам. Так что , если authorized_keys
есть запись для кого , кроме пользователя или может быть доступно для записи кто - либо , кроме пользователя, он будет отказываться от проверки подлинности (если SSHD не настроен StrictModes no
)
Под словом «можно сделать доступным для записи» я подразумеваю, что, если любой из родительских каталогов доступен для записи кому-либо, кроме пользователя, пользователи, которым разрешено изменять эти каталоги, могут начать изменять разрешения таким образом, чтобы они могли изменять / заменять author_keys.
Кроме того, если /home/username/.ssh
каталог не принадлежит пользователю и, следовательно, у пользователя нет прав на чтение ключа, вы можете столкнуться с проблемами:
drwxr-xr-x 7 jane jane 4096 Jan 22 02:10 /home/jane
drwx------ 2 root root 4096 Jan 22 03:28 /home/jane/.ssh
Обратите внимание, что Джейн не владеет .ssh
файлом. Исправить это через
chown -R jane:jane /home/jane/.ssh
Такого рода проблемы с разрешениями файловой системы не будут отображаться ssh -v
, и они даже не будут отображаться в журналах sshd (!), Пока вы не установите уровень журнала на DEBUG.
- Редактировать
/etc/ssh/sshd_config
. Вы хотите строку, которая читает LogLevel DEBUG
где-то там. Перезагрузите сервер SSH, используя механизм, предоставленный дистрибутивом. ( service sshd reload
на RHEL / CentOS / Scientific.) Изящная перезагрузка не удалит существующие сессии.
- Попробуйте авторизоваться снова.
- Определите, куда попадают ваши журналы аутентификации, и прочитайте их. (IIRC,
/var/log/auth.log
о дистрибутивах на основе Debian; /var/log/secure
на RHEL / CentOS / Scientific.)
Намного легче понять, что происходит с выводом отладки, который включает ошибки разрешения файловой системы. Не забудьте отменить изменение, /etc/ssh/sshd_config
когда закончите!