Как явно не упоминалось, 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когда закончите!