Назад | Перейти на главную страницу

Как настроить SUDO на отсутствие пароля, если пользователь входит в систему удаленно с определенного хоста

Я хотел бы настроить свой файл 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

Это желаемый шаблон модуля.