SUDO без пароля при входе с секретными ключами SSH

23

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

Это позволит хранить пароли в UNIX сисадмина в зашифрованных холодильниках и никогда не должны получить доступ к ним, при условии, что пользователи используют безопасные ключи частной SSH всегда вход в системе на сервере.

Микко Охтамаа
источник
askubuntu.com/a/135838 Если поставить этих пользователей в группу, Вы уверены , что может!
Роб
попробовать sudo visudoи изменить свой пароль , чтобы NOPASSWD: ALLувидеть , если это работает
пневматика
3
@AlanTuring Это также будет работать для пользователей в этой группе, которые идентифицируются с помощью пароля.
Xyon
@AlanTuring Это было бы эффективно уменьшить безопасность сервера - я хочу только некоторые пользователи, не все, Судо
Микко Ohtamaa
Можно дать привилегии для определенных пользователей. Смотри мой ответ.
Исаак Рабинович

Ответы:

10

Возможность сделать это существует с (по крайней мере) апреля 2014 года .

Вам нужно будет установить пакет под названием pam_ssh_agent_auth(доступный для Centos 7 из коробки, YMMV), а затем настроить , /etc/pam.d/sudoчтобы принять его в качестве способа авторизации. Наконец, вы можете добавить SSH_AUTH_SOCKв список переменных окружения , которые сохраняются в течение sudo.

В Gentoo есть подробная информация об этих шагах.

Лиам Доусон
источник
1
Прекрасный, спасибо Лиам. Жаль , я не был в сисадмин на протяжении многих лет!
Микко Охтамаа
1

Это невозможно без серьезных изменений кода в sudo и sshd. Sudo не знает о методах входа в систему, и ssh не публикует в других программах ничего, что указывало бы, использовался ли для входа открытый ключ, пароль или какой-либо другой механизм.

Как кто-то еще сказал, вы можете использовать опцию NOPASSWD в sudoers - это будет применяться к указанным пользователям всегда, но не только, когда они используют ssh с закрытыми ключами.

Если вы действительно хотите, может быть трюки, которые вы можете сделать с Suid программой, которая проверяет журнал SSHD и замки / редактирует файл sudoers, чтобы позволить этому пользователю делать не-пароль Sudo и периодической задачи отозвать это разрешение.

Все, что сказал, я думаю, что это плохая идея. Запрос пароля для привилегированных команд имеет несколько приятных преимуществ, которых нет у закрытого ключа SSH. Примечательно, что позволяет иметь время ожидания для AUTH (пароль должен быть повторно введен, не верно для SSH сессий), это позволяет иметь пароль минимумы и вращение (в отличие от SSH ключей, которые имеют ключевую фразу вне контроля сервера).

Дагон
источник
11
«Это не может быть сделано» не ответ, особенно , когда это может быть сделано.
Исаак Рабинович
Изменение ответа на правильный , содержащем новый informatino.
Микко Охтамаа
1

Несколько ответов Поинта SUDO без отдельного пользователя Пароль. Вы должны знать, что это снизит вашу безопасность.

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

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

Если Судо требует пароля от пользователя атакующему нужно времени и удачи нагнетать его привилегию корень.

Себастьян Brabetz
источник