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

Как заставить команды sudo работать по ssh без запроса пароля?

Я настроил сервер для приема ssh без паролей, и он отлично работает для непривилегированных команд.
Однако когда я пытаюсь бежать sudo команд, у меня все еще спрашивают пароль:

$ ssh -t test@192.168.1.52  "ls"
Desktop  Documents  Downloads  Music  Pictures  Public  Templates  Videos
Connection to 192.168.1.52 closed.

$ ssh -t test@192.168.1.52  "sudo ls"
[sudo] password for test: 
Desktop  Documents  Downloads  Music  Pictures  Public  Templates  Videos
Connection to 192.168.1.52 closed.
$ 

Поиск в Google указывает на то, что ssh -t должен позволить sudo запускать без запроса пароля, но это не тот случай, о котором говорилось выше.

Любое предложение, что мне делать, чтобы команды sudo работали без запроса пароля?

ОС - CentOS 7.5.

Объединив отличные комментарии Торина и Майкла,

Вы должны отредактировать конфигурацию sudo, чтобы разрешить команды, которые вы хотите, необязательно включая NOPASSWD: модификатор.

Помните, что:

  • Это привилегированные файлы, поэтому вам потребуются повышенные учетные данные (пароль root, ключ root ssh, существующее правило sudo ...) для их развертывания.
  • Вы можете использовать #includedir директива для включения каталога дополнительных конфигураций sudoers, таких как /etc/sudoers.d. Затем вы можете добавить файлы, например, с развернутым вами пользовательским пакетом программного обеспечения.
  • Вы можете поддерживать правила sudo в ldap, а не в файлах. Хотя вам, вероятно, придется перебрать все хосты, чтобы обновить nsswitch.conf. См. Справочную страницу sudoers.ldap.

ssh -t относится к выделению tty, которое напрямую не связано.

Команда ниже - это правильный способ добавления пользователя в sudoers:

echo "test ALL = (root) NOPASSWD:ALL" | sudo tee /etc/sudoers.d/test
chmod 0440 /etc/sudoers.d/test

Теперь вы можете использовать ssh без отключения.