Как сделать Общие Ключи .ssh/authorized_keys, и sudo сотрудничают?

Я имею, устанавливают .ssh/authorized_keys и могут войти в систему с новым "пользователем", использующим паб/закрытый ключ... Я также добавил, что "пользователь" к sudoers перечисляет... проблему, которую я имею, теперь, когда я пытаюсь выполнить команду sudo, что-то простое как:

$ sudo cd /root

это предложит мне мой пароль, который я ввожу, но это не работает (я использую пароль с закрытым ключом, который я установил),

Кроме того, я отключил использование пароля пользователя

$ passwd -l user

Что я пропускаю?

Где-нибудь мои начальные комментарии неправильно понимаются...

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

Дополнительно я в конечном счете предотвращу логины сервера через корневую учетную запись. Но прежде чем я делаю это, мне нужен sudo для работы на второго пользователя (пользователь, с которым я буду входом в систему в систему все время).

Для этого второго пользователя я хочу предотвратить регулярные логины пароля и вызвать только логины паба/закрытого ключа, если я не блокирую пользователя через" passwd-l пользователь... затем, если я не использую ключ, я могу все еще войти в сервер с регулярным паролем.

Но что еще более важно я должен заставить sudo работать с установкой паба/закрытого ключа с пользователем, чей отключили его пароль.


Править: Хорошо, я думаю, что у меня есть он (решение):

1) Я скорректировал/etc/ssh/sshd_config и установил PasswordAuthentication no Это предотвратит ssh логины пароля (убедиться иметь рабочую общедоступную/с закрытым ключом установку до выполнения этого

2) Я скорректировал список sudoers visudo и добавил

root      ALL=(ALL) ALL
dimas     ALL=(ALL) NOPASSWD: ALL

3) корень является единственной учетной записью пользователя, которая будет иметь пароль, я тестирую с двумя учетными записями пользователей "dimas" и "хересом", которые не имеют набора пароля (пароли являются пробелом, passwd -d user)

Вышеупомянутое по существу препятствует тому, чтобы все вошли в систему с паролями (общественность/закрытый ключ должна быть установкой).

Дополнительно у пользователей в списке sudoers есть администраторские способности. Они могут также su в различные учетные записи. Таким образом, в основном "dimas" может sudo su sherry, однако "десять центов НЕ могут сделать su sherry. Так же любой пользователь НЕ в списке sudoers НЕ может сделать su user или sudo su user.

ПРИМЕЧАНИЕ. Вышеупомянутые работы, но считают плохой безопасностью. Любой сценарий, который может к коду доступа как пользователи "dimas" или "хереса", сможет выполнить sudo для получения корневого доступа. Ошибка в ssh, который позволяет удаленным пользователям входить в систему несмотря на настройки, удаленное выполнение кода в чем-то как Firefox или любой другой дефект, который позволяет нежелательному коду работать как пользователь, теперь сможет работать как корень. Sudo должен всегда требовать пароля, или можно также войти в систему как корень вместо некоторого другого пользователя.

15
задан 27.05.2017, 23:58

2 ответа

ssh и sudo не имейте никакого отношения друг к другу. Установка ssh метод аутентификации не собирается делать что-либо для sudo. sudo движение не должно понимать ssh пароль.

passwd -l предназначается для блокировки учетной записи пользователя, так, чтобы он больше не мог проходить проверку подлинности паролем. Это - в значительной степени противоположность того, что Вы хотите, который позволяет пользователю пройти проверку подлинности без пароля.

Я думаю, что Вы хотите, NOPASSWD опция в Вашем sudoers файл.

(PS, нет никакой причины выполнить a cd команда с sudo. cd не распространяет к родительским процессам, поэтому как только sudo выходы, Вы вернулись, где Вы запустили.)

Править: Вы продолжаете говорить, что Вы хотите заблокировать пароль учетной записи и хотеть, чтобы sudo понял общественность/закрытые ключи. Извините, sudo не собирается использовать ssh ключи. Это не ssh. Если Вы не хотите, чтобы пользователи смогли войти в систему с их паролями, я думаю, что ответ должен отключить ssh аутентификацию по паролю, для не блокировки учетной записи. Затем можно сохранить пароль для пользователей, которых они могут использовать для sudo после того, как они регистрируются на пути ssh authorized_keys.

10
ответ дан 07.12.2019, 11:01

Единственным путем я знаю для обхода ввода пароля, путем отключения его в Вашем sudoers файл.

Что-то вроде этого даст root и все члены wheel полный доступ без пароля:

root    ALL=(ALL)   NOPASSWD: ALL
%wheel  ALL=(ALL)   NOPASSWD: ALL

Это абсолютно не рекомендуется, как бы то ни было. Если у Вас есть определенная команда для этого сервера для выполнения, предоставьте им доступ только к той команде. Или еще лучше, найдите другой способ выполнить то, что Вы хотите сделать, который не требует перфорации дыры в системе безопасности.

-1
ответ дан 07.12.2019, 11:01

Теги

Похожие вопросы