SSH para vários servidores com nome de usuário e senha

0

Eu quero fazer SSH com nome de usuário e senha para vários servidores precisa saber a opção de colocar a senha do nome de usuário no script abaixo

for HOST in $(cat ping.txt ) ; do ssh $HOST "ping -c 10  google.com" ; done
    
por user3688785 21.02.2017 / 07:18

2 respostas

1

Você pode usar sshpass, mas é melhor usar ansible . Exemplo de uso de sshpass:

# vim server.list
192.168.0.100
192.168.0.101

# apt-get install sshpass
$ vim script.sh
#!/bin/bash
while read -r line
do
    echo "running $line"
    SSHPASS=PASSWORD sshpass -e ssh-copy-id USERNAME@"$line" -o "StrictHostKeyChecking no"
done < "server.list"

Executar script:

$ sh script.sh
running 192.168.0.100
...
Number of key(s) added: 1
running 192.168.0.101
...
Number of key(s) added: 1
    
por 22.08.2017 / 13:51
0

Instale expect ,

#script.sh    
#!/usr/bin/expect -f
    username=user
    password=pass
    for HOST in $(cat $1)
            do
                    echo "ssh $username@$HOST"
                    expect "Password:"
                    send "$pass\r"
            done

file.txt
1.1.1.1
2.2.2.2
3.3.3.3
4.4.4.4

bash script.sh arquivo.txt

    
por 21.02.2017 / 08:21