После прочтения этого похожего вопроса мне неясно, как требовать ключи SSH для user
, при этом отказывая в доступе SSH к root
(ключ или пароль). Я буду использовать sudo после входа в систему как пользователь, если мне нужно быть пользователем root.
Я знаю, как требовать ключи SSH:
PermitRootLogin without-password
Я знаю, как отключить вход пользователя root в систему:
PermitRootLogin no
Я знаю, как добавить пользователя в белый список:
AllowUsers user
Я не знаю, как все это собрать (или, если это вообще необходимо? - ключ SSH может быть достаточно хорошим). Обычно я решаю такой ответ методом проб и ошибок, но боюсь, что смогу заблокировать себя на этом сервере ...
Если вы хотите запретить вход в систему с паролем, просто установите PasswordAuthentication no
в sshd_conf
на сервере.
Я точно не помню, но я думаю, что по крайней мере ни одна учетная запись root не используется по умолчанию.
Попытка войти в систему как любой пользователь в системе, у которого нет вашего открытого ключа в ~/.ssh/authorized_keys
, спросит пароль, установлен ли пароль, или доступна оболочка, если пароль для входа в систему имеет не был отключен.
Я думаю, что вы просто хотите:
PasswordAuthentication no PermitRootLogin no
Это запретит любую корневую регистрацию, либо с ssh-ключом, либо с паролем, и потребует от пользователей входа в систему с действительным ключом, как указано при наличии открытый ключ в файле ~/.ssh/authorized_keys
этого пользователя.