у меня есть users.txt
со следующим содержанием:
ip1 user1 password1
ip2 user2 password2
....
ipN userN passwordN
Я хочу создать по одному пользователю на каждом из этих серверов. Я хочу использовать этот скрипт на каждом сервере:
user_login="some_user7"
password="blablabla"
sudo adduser $user_login --gecos "First Last,RoomNumber,WorkPhone,HomePhone" --disabled-password
echo -e "$password\n$password\n" | sudo passwd $user_login
Я не понимаю, как правильно подключиться к каждому серверу и выполнить этот скрипт.
P.S. Я не хочу использовать SSH-открытые ключи. Я хочу использовать только логины и пароли.
Выполнить скрипт на сервере с использованием ssh просто, примерно так:
cat script.sh | ssh someserver
Однако вы, вероятно, не захотите выполнять один и тот же сценарий на каждом сервере. Вам понадобится другой сценарий для чтения вашего файла users.txt и создания из этого файла файлов сценариев для каждой строки в файле users.txt перед вызовом ssh с вновь созданным сценарием в качестве входных данных. Вы можете использовать sed для замены пользователя и пароля в каком-либо файле шаблона.
Или вы можете использовать awk для выполнения всей работы:
awk '{system("ssh \""$1 " sudo adduser " $2 " --disable-password ; echo -e \\\""$3"\\n"$3"\\n\\\" | sudo passwd "$2"\"")}' < users.txt