Я пишу скрипт, который должен войти на несколько удаленных машин и запустить на них команду. Я установил ключи, чтобы пользователь, выполняющий скрипт, не должен вводить пароль каждой машины, а только вводить парольную фразу в начале скрипта.
Проблема в том, что команда на удаленных машинах требует sudo
запуска. И в то же время весь смысл сценария состоит в том, чтобы избавить пользователя от необходимости вводить пароли несколько раз. Есть ли способ избежать ввода пароля для sudo
? Изменение разрешений команды на удаленных машинах не вариант.
/etc/sudoers
и его также можно отредактировать, запустивsudo /usr/sbin/visudo
%wesho ALL=NOPASSWD: /sbin/service httpd
@Wesho,
Вы можете сделать то, что сказал DaDaDom (это будет работать, и это просто), или вы можете увеличить ваши настройки, используя модуль PAM под названием pam-ssh-agent-auth .
Процесс для систем Debian / Ubuntu достаточно прост:
Редактирование конфигурации sudo:
Добавьте следующее:
Продолжите, изменив настройки sudo PAM:
Добавьте строку auth чуть выше двух существующих строк @include :
Вуаля!
sudo без аутентификации, но полагается на SSH Agent для выполнения строгой аутентификации вместо простого удаления пароля из конфигурации sudo.
источник
authorized_keys
НЕОБХОДИМО заблокировать, чтобы его мог изменить только root, иначе вы можете отключить пароль.Ответ Андре де Миранды дает хорошее решение с использованием pam_ssh_agent_auth , но некоторые части устарели. В частности,
/etc/pam.d/sudo
инструкции при использовании многих текущих версий Linux.Если вы используете Ubuntu 12.04, я упростил процесс, предоставив сборку pam_ssh_agent_auth из ppa: ppa: cpick / pam-ssh-agent-auth .
Вы можете установить пакет, запустив:
После установки, если вы хотите использовать этот модуль PAM с sudo, вам нужно будет настроить параметры sudo и конфигурацию PAM, в Ubuntu 12.04, точнее, вы можете сделать это, создав следующие два файла:
/etc/sudoers.d/pam-ssh-agent-auth:
/etc/pam.d/sudo:
Если вы используете chef, описанный выше процесс можно автоматизировать с помощью моей кулинарной книги, которую можно найти в любом из двух следующих мест:
https://github.com/cpick/pam-ssh-agent-auth
http: //community.opscode .com / cookbooks / pam-ssh-agent-auth .
files
Каталог поваренной книги содержит описанные выше файлы/etc/pam.d/sudo
и/etc/sudoers.d/pam-ssh-agent-auth
файлы, которые работают с Ubuntu 12.04 точно, и должны быть полезной отправной точкой при использовании других версий / дистрибутивов.источник