사용자 이름과 비밀번호를 사용하여 SSH를 통해 여러 서버에 연결

사용자 이름과 비밀번호를 사용하여 SSH를 통해 여러 서버에 연결

사용자 이름과 비밀번호를 사용하여 SSH를 통해 여러 서버에 연결하고 싶고 아래 스크립트에 사용자 이름과 비밀번호를 입력하는 옵션을 알아야 합니다.

for HOST in $(cat ping.txt ) ; do ssh $HOST "ping -c 10  google.com" ; done

답변1

sshpass를 사용할 수 있지만 사용하는 것이 더 좋습니다안시푸르. 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"

스크립트를 실행합니다:

$ 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

답변2

설치하다 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 파일.txt

관련 정보