Efetue login usando o SSH como um script diferente para executar o usuário e vá para o próximo.

0

Eu tento executar algum script localizado em servidores especificados na lista, mas eu tenho um problema com o login como usuário especificado. Para esclarecê-lo eu logar no server1 como user0, em seguida, executar este script e eu, exceto o script será alternar meu user0 para user1 e como user1 executar a ação das linhas abaixo para servidores especificados na lista:

[user0@server1 home]$ /home/user0/my_script.sh

#!/bin/bash
sudo su - user1
#SERV=(serv1 serv2 serv3)

for HOST in ${SERV[@]}; do
   ssh -t user1@${SERV} 'cd /opt/directory1/directory2/var; sudo /opt/custom/scripts/script.sh'

    if [[ $?=0 ]]; then
        echo "Commnad on $SERV executed!"
     else
        echo "$SERV do not exist!"
    fi
done

O problema é com o usuário switch do usuário que executa o script para o usuário que será executado ssh (user1 incluiu as chaves rsa), mas script sempre me perguntar sobre senha para user1

    
por Adam Rybarczyk 11.10.2018 / 15:00

1 resposta

0

Se você quiser que o user0 consiga fazer o ssh user1 @ $ {SERV} sem precisar digitar a senha, então você precisa que o user1 confie no user0. Em outras palavras, a chave pública do user0 precisa ser adicionada ao arquivo authorized_keys do user1. Você pode fazer isso executando

ssh-copy-id user1@${SERV}

para cada servidor em que você deseja que o usuário0 tenha acesso como usuário1.

Espero que isso ajude

    
por 11.10.2018 / 15:18