Повышение привелегий на запуск удаленного скрипта
Есть много серверов и рабочих машин, они меняются. Нужно к машинам получить доступ по ключу ssh в автоматическом режиме. Есть начало скрипта который генерирует ключ в дефолте, через ssh-copi-id разливает по нужным машинам и прописывает пароль. Ключ генерируется по user разливается на удаленные машины тоже под юзер так как в дефолте ssh root закрыт. Нужно завершить разливку ssh ключа что бы можно было авторизоваться под root без пароля и руных вводов.
#!/bin/sh
SRV=(
"srv1"
"srv2"
"srv3"
)
USR=admin
# Убедись что введен пароль
if [ -z "$1" ]; then
echo "Необходимо ввести пароль SSH!"
echo " script 'PASSWORD'"
exit
fi
echo "удаляем старые SSH ключи"
rm -f /root/.ssh/id_rsa*
echo "Генерируем новый SSH ключ"
ssh-keygen -t rsa -f /root/.ssh/id_rsa -P ''
#разливка ssh key
export SSHPASS=$1
echo "разливаем ключи по серверам"
for SRV in "${SRV[@]}"
do
echo $SRV
sshpass -e ssh-copy-id -i ~/.ssh/id_rsa.pub -o StrictHostKeyChecking=no $USR@$SRV || echo "FAILED"
ssh $USR@$SRV 'rm -rf .ssh'
sshpass -e ssh-copy-id -i ~/.ssh/id_rsa.pub -o StrictHostKeyChecking=no $USR@$SRV || echo "FAILED"
done
дальше я выполняю ручные действия которые хотелось бы автоматизировать
ssh admin@srv1
su - (ввод пароля)
cat /home/sysadmin/.ssh/authorized_keys >> .ssh/authorized_keys
exit
exit
Подскажите как это сделать?