Запустить сценарий bash как sudo из окон без взаимодействия

Мне нужно выполнить сценарий bash как sudo на удаленной машине linux из TeamCity, запущенной в окне Windows. Я могу нормально выполнить сценарий из строки cmd с помощью plink, но мне будет предложено ввести пароль. Мне нужно сделать это без запроса пароля для выполнения из teamcity.

Какие у меня варианты?

3
задан 3 November 2015 в 14:56
3 ответа

Вам необходимо отредактировать конфигурацию sudo на хосте, на котором вы хотите запустить сценарий. Запустите visudo от имени пользователя root и добавьте такую ​​строку:

USERNAME ALL = (ALL) NOPASSWD: ALL

Замените USERNAME пользователем, с которым вы хотите запустить сценарий. . Это должно позволить пользователю использовать sudo без ввода пароля. Возможно, вы захотите ограничить использование sudo теми командами, которые вам действительно нужны. Посмотрите в sudoers с помощью visudo примеры того, как этого добиться.

2
ответ дан 3 December 2019 в 06:59

Если обе системы защищены, вы можете использовать что-то вроде этого:

echo 'sudo_password' | sudo -S command

Этот параметр следует использовать с осторожностью, поскольку он использует пароль в открытом виде, и другие пользователи, вошедшие в систему на этой машине, могут увидеть Это.

0
ответ дан 3 December 2019 в 06:59

Один из вариантов - просто разрешить ssh-доступ напрямую к учетной записи root на машине. Вы должны заблокировать это с помощью закрытого ключа и, возможно, защитить этот ключ паролем. Добавьте в свой sshd_config что-то вроде следующего:

PermitRootLogin yes
Match User root
  PasswordAuthentication no

Если вы пойдете по этому маршруту, вы можете заставить этот ключ запускать определенный командный сценарий независимо от того, что было указано, добавив command = "" в ~ root Файл / authorized_hosts, например

command="/root/myscript" ssh-rsa AAAB3NzaC1yc2EAAAABIwAAADV4//KSz...
0
ответ дан 3 December 2019 в 06:59

Теги

Похожие вопросы