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-keygen ...”创建本地 ssk 密钥对
  • 使用“ssh-copy-id ..”将公钥添加到远程系统授权密钥

相关内容