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

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

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

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

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

Если вы действительно этого хотите, могут быть трюки, которые вы можете сделать с помощью suid-программы, которая проверяет журнал sshd и блокирует / редактирует файл sudoers, чтобы позволить этому пользователю выполнить no-password sudo и периодическую задачу об отзыве этого разрешения.

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

Несколько ответов Укажите на sudo без отдельного пользователя Password. Вы должны осознавать, что это уменьшит вашу безопасность.

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

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

Если sudo требует пароль от пользователя, злоумышленнику нужно время и удача, чтобы повысить свои привилегии до root.

Нет сохраненных паролей или ключей. Вы можете получить желаемый результат, предоставив пользователю без пароля в / etc / sudoers. Просто добавьте следующую строку:

 user ALL=(ALL) NOPASSWD: ALL 

Обязательно используйте visudo для редактирования sudoers. Возможно, вы захотите дать странице man sudoers быстрый взгляд, чтобы вы поняли, что делаете.

  • Почему sudo меняет PATH?
  • Альтернатива для sudo
  • Как проверить, есть ли у меня доступ к Sudo?
  • Команда TC через веб-страницу как sudo
  • sudo echo "something" >> / etc / privilegedFile не работает ... есть ли альтернатива?
  • Как я могу вернуться к тому, что sudo снова попросит пароль?
  • Потерянный sudo / su на примере Amazon EC2
  • Почему sudo -n на Mac OS X всегда возвращает 0?
  • SSH: выполнить команду sudo
  • Scp для удаленного сервера с sudo
  • Запустить rsync с правами root на удаленной машине
  • Давайте будем гением компьютера.