Сервер принимает ключ, если доверяет файлу, где он лежит. Права и владелец этого файла решают вход так же, как сам ключ.
sshd читает authorized_keys при каждом входе. Настройка StrictModes yes (она включена по умолчанию) велит проверить файл и каталоги над ним: владелец — сама учётная запись или root, писать в них посторонние не могут. Иначе любой пользователь машины дописал бы туда свой ключ и вошёл как deploy.
Права authorized_keys |
Вход по ключу |
|---|---|
-rw------- (600) |
проходит |
-rw-r--r-- (644) |
проходит |
-rw-rw-rw- (666) |
отказ: писать могут все |
Почему отказали, сервер пишет в свой журнал — его печатает sudo journalctl -u lab-sshd --no-pager: bad ownership or modes, плохой владелец или права. Исправь файл из начала урока и войди снова:
Перезапускать сервер не нужно: файл он прочтёт при следующем входе. Права 777 «чтобы точно прочиталось» дают обратный результат — посторонние получают запись, и сервер откажет.
Главное в шаге
-
При
StrictModes yesсервер не берёт ключи из файла, который может менять кто-то кроме владельца. -
Причину отказа сервер пишет в свой журнал, а
sshу клиента её не показывает.