Рейтинг:0

Безопасный перезапуск служб на нескольких удаленных серверах

флаг om
Ror

Мне нужно написать скрипт, чтобы я и мои коллеги могли перезапускать разные службы на нескольких серверах.Мы все подключаемся к серверам с помощью LDAP, поэтому я хотел бы, чтобы мой сценарий подключал наших пользователей LDAP к серверу, а затем использовал sudo для перезапуска служб (я могу написать сценарий на каждом сервере для перезапуска всех необходимых служб). Прямо сейчас скрипт просто запускает команду вроде

ssh -t user@host "перезагрузка службы sudo XXX" 

Проблема в том, что для каждого сервера скрипт дважды запрашивает пароль пользователя (один раз для подключения по ssh и два для команды sudo). Моя первая догадка заключалась в том, чтобы запросить у пользователя логин и пароль с помощью read -s -p, а затем использовать переменную для автоматического входа в систему с помощью ssh. По-видимому, Expect — это способ сделать это, но я не нашел способа безопасно запросить пароль в сценарии Expect или запросить его в сценарии bash и безопасно передать переменную в сценарии ожидания.

Я искал такие решения, как pssh, cluster ssh, которые, похоже, работают, но не с sudo. Я понимаю, что лучший способ сделать это — использовать ключи ssh, но, поскольку несколько пользователей должны использовать сценарий, я бы хотел использовать логин/пароль LDAP.

флаг fo
См. [Как я могу сделать запрос сценария ожидания для пароля?] (https://stackoverflow.com/questions/681928/how-can-i-make-an-expect-script-prompt-for-a-password)
Рейтинг:0
флаг om
Ror

Как предположил Гленн в комментариях, правильный способ сделать это — использовать stty :

# получить пароль
стти-эхо
send_user -- "Пароль для $user@$host: "
expect_user -re "(.*)\n"
send_user "\n"
эхо
установить проход $expect_out(1,string)

#... позже
отправить -- "$pass\r"

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.