여러 서버에 SSH로 연결

여러 서버에 SSH로 연결

스크립트가 호스트 파일처럼 작동하도록 하는 방법이 있습니까?

그래서 나는 말하고 싶다

./test1 

서버 이름이 무엇인지 물었고 "server1"을 입력했습니다. 스크립트는 파일에서 IP 주소를 가져와 ssh를 통해 연결했습니다. sshpass로 작동하도록 관리했지만 IP 없이는 작동하지 않았습니다!

while read -p 'Enter the ip address for the server: ' ip_addr && [[ -z "$ip_addr" ]] ; do
 echo " please, no blank IP address!"

 sshpass -p "$password" ssh -o StrictHostKeyChecking=no $ip_addr "x=$y"  /bin/bash << "EOF"
                        sudo su - $x

답변1

다음을 시도해 보십시오:

  • SSH를 통해 연결하려는 모든 호스트가 포함된 텍스트 파일을 만듭니다.
  • 파일을 한 줄씩 읽고 거기에서 일부 작업을 수행합니다.

텍스트 파일:

host1 #comment
host2 # also comment
host3 # # # it does not matter whats after the hostname

스크립트:

cat Textfile | while read srv comment do;
sshpass -p "$password" ssh -o StrictHostKeyChecking=no USER@${srv} "COMMANDS"
done

암호화의 경우: 비밀번호를 공개 키 인증으로 바꾸는 것을 고려해야 합니다. 작동하려면 다음이 필요합니다.

  • 로컬 SSH 키 쌍을 생성하려면 "ssh-keygen..."을 사용하세요.
  • "ssh-copy-id .."를 사용하여 원격 시스템 인증 키에 공개 키를 추가합니다.

관련 정보