Повышение привелегий на запуск удаленного скрипта

Есть много серверов и рабочих машин, они меняются. Нужно к машинам получить доступ по ключу 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

Подскажите как это сделать?


Ответы (0 шт):