Я хотел бы настроить свой файл sudoers в Debian следующим образом:
Я знаю, как сделать так, чтобы они всегда были нужны или никогда не понадобились, но я не знаю, как настроить их для нескольких мест.
Я думаю, вы неправильно понимаете цель списка хостов в файле sudoers. Он существует, поэтому вы можете использовать один и тот же файл на нескольких хостах, не предоставляя одинаковые права на каждом хосте.
Вместо этого вы должны использовать ssh-ключи, чтобы разрешить беспарольный вход в систему как root. Вы можете создать два ключа для рассматриваемого пользователя. Сделайте один из ключей зашифрованным парольной фразой, а другой оставьте открытым текстом. На вашем сервере поместите открытые ключи в файл .ssh / authorized keys root. Затем добавьте from="a.a.a.a"
в строку открытого ключа без пароля, чтобы никто не мог использовать его с другого хоста.
Это требует, чтобы вы разрешили вход в систему root через ssh, но вы должны разрешить вход root только с ключами ssh. Убедитесь, что ваш sshd_config имеет следующие настройки:
PermitRootLogin without-password
Я не уверен, есть ли уже модуль, который это сделает, но вы определенно можете сделать это с помощью системы PAM.
Модуль, который подтверждает, что пользователь вошел в систему через ssh и использует правильный IP-адрес, может быть введен в конфигурацию sudo с sufficient
строка, и она предоставит доступ.
Я бы взглянул на образец из http://www.netbsd.org/docs/guide/en/chap-pam.html#pam-appl-prog и, возможно, пойти оттуда или использовать pam_rhosts в качестве образца.
requisite authorized_user #sudoers file / existing module?
sufficient via_ssh_from_listed_host
required password #usual sudo thing
Это желаемый шаблон модуля.