Мне потребовались часы, чтобы решить эту проблему SSH с одной из моих учетных записей класса на серверах моей школы.
Я не мог войти в одну конкретную учетную запись класса без ввода пароля, в то время как аутентификация без пароля работала с другими учетными записями класса. Каталог .ssh / и все его содержимое имеют те же правильные разрешения, что и другие учетные записи классов.
Оказывается, проблема заключалась в том, что права доступа были установлены в моем домашнем каталоге. Аутентификация без пароля не работала, когда разрешения для моего каталога HOME были установлены на 770 (независимо от разрешений, установленных для .ssh /), но она работала с разрешениями, установленными на 755 или 700.
Кто-нибудь знает, почему SSH делает это? Это потому, что разрешения для домашнего каталога слишком разрешительны? Почему SSH отказывается аутентифицироваться с открытым / закрытым ключами, когда домашний каталог установлен более разрешающим, чем 700?
источник
learn more
увидите контрольный список того, что делать, когда SSH не работает, и в нем будут указаны разрешения для домашнего каталога.Ответы:
Это поведение по умолчанию для 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
(или аналогичном) файле конфигурации, хотя должно быть ясно, что это не рекомендуется .источник
StrictModes no
. В моей настройке ACL настроен в домашнем каталоге целевого пользователя и всех его потомках, чтобы разрешить изменения пользователем с полувыводом (u:operator:rwx
), и SSH это не понравилось.77x в вашем домашнем каталоге означает, что каждый с правильным GID может переместить ваш каталог .ssh и заменить его другим. Пользователи с правильным GID имеют права на запись / выполнение в домашнем каталоге и поэтому могут переименовывать / создавать файлы / каталоги.
SSH очень требователен, когда дело касается разрешений, и так и должно быть.
источник