SSH и домашний каталог разрешений

53

Мне потребовались часы, чтобы решить эту проблему SSH с одной из моих учетных записей класса на серверах моей школы.

Я не мог войти в одну конкретную учетную запись класса без ввода пароля, в то время как аутентификация без пароля работала с другими учетными записями класса. Каталог .ssh / и все его содержимое имеют те же правильные разрешения, что и другие учетные записи классов.

Оказывается, проблема заключалась в том, что права доступа были установлены в моем домашнем каталоге. Аутентификация без пароля не работала, когда разрешения для моего каталога HOME были установлены на 770 (независимо от разрешений, установленных для .ssh /), но она работала с разрешениями, установленными на 755 или 700.

Кто-нибудь знает, почему SSH делает это? Это потому, что разрешения для домашнего каталога слишком разрешительны? Почему SSH отказывается аутентифицироваться с открытым / закрытым ключами, когда домашний каталог установлен более разрешающим, чем 700?

action_potato
источник
1
Подтвердили ответы ниже; проблема заключалась в том, что права доступа группы к домашней папке были неправильно установлены (сообщение об ошибке от auth.log было: «Отказ в аутентификации: неправильное владение или режимы для каталога / home / <пользователь>»). Я вижу, что SSH вправе быть разборчивым в отношении разрешений на домашний каталог.
action_potato
5
Знаете ли вы о тегах вики у нас здесь? Если вы щелкнете по ssh, а затем learn moreувидите контрольный список того, что делать, когда SSH не работает, и в нем будут указаны разрешения для домашнего каталога.
Жиль "ТАК - перестань быть злым"
Ах, прости, я не знал об этом! Спасибо за внимание.
action_potato

Ответы:

54

Это поведение по умолчанию для SSH. Он защищает ключи пользователя путем применения rwx------на $HOME/.sshи обеспечение имеет только владелец записи разрешения $HOME. Если пользователь, отличный от соответствующего владельца, имеет разрешение на запись в $HOMEкаталог, он может злонамеренно изменить разрешения $HOME/.ssh, возможно, перехватить пользовательские ключи known_hostsили что-то подобное. Таким образом, $HOMEдля работы SSH будет достаточно следующих разрешений .

  • rwx------
  • rwxr-x---
  • rwxr-xr-x

SSH не будет работать правильно и будет отправлять предупреждения в средства ведения журнала, если в каталоге существует какое-либо изменение g+wили o+wсуществует $HOME. Однако администратор может переопределить это поведение, определив его StrictModes noв sshd_config(или аналогичном) файле конфигурации, хотя должно быть ясно, что это не рекомендуется .

Джордж М
источник
1
Спасибо за упоминание StrictModes no. В моей настройке ACL настроен в домашнем каталоге целевого пользователя и всех его потомках, чтобы разрешить изменения пользователем с полувыводом ( u:operator:rwx), и SSH это не понравилось.
intelfx
31

77x в вашем домашнем каталоге означает, что каждый с правильным GID может переместить ваш каталог .ssh и заменить его другим. Пользователи с правильным GID имеют права на запись / выполнение в домашнем каталоге и поэтому могут переименовывать / создавать файлы / каталоги.

SSH очень требователен, когда дело касается разрешений, и так и должно быть.

jippie
источник