当前位置: 代码迷 >> 综合 >> 黑猴子的家:auto_ssh_two_expect.sh
  详细解决方案

黑猴子的家:auto_ssh_two_expect.sh

热度:20   发布时间:2023-09-14 20:53:13.0

1、提前安装依赖

[alex@hadoop102 ~]$ sudo yum install -y sshpass expect -y

2、编辑脚本

[alex@hadoop102 ~]$ touch ~/bin/auto_ssh_two_expect.sh
[alex@hadoop102 ~]$ chmod 755 ~/bin/auto_ssh_two_expect.sh
[alex@hadoop102 ~]$ vim ~/bin/auto_ssh_two_expect.sh
#!/bin/bashuser=`whoami`
passwd=000000for((host=102; host<=104; host++));dosshpass -p $passwd ssh -q -o StrictHostKeyChecking=no ${user}@hadoop${host} "rm -rf ~/.ssh/*"
donefor((host=102; host<=104; host++));dosshpass -p $passwd ssh -q -o StrictHostKeyChecking=no ${user}@hadoop${host} "sudo yum install -y sshpass expect -y"
done# sudo yum install -y sshpass expect -y
for((host=102; host<=104; host++));dosshpass -p $passwd ssh -q -o StrictHostKeyChecking=no ${user}@hadoop${host} expect << EOFspawn ssh-keygen -t rsaexpect {"Enter file in which to save the key (/home/${user}/.ssh/id_rsa):" { send "\r"; exp_continue}"Overwrite (y/n)?" { send "y\r"; exp_continue }"Enter passphrase (empty for no passphrase):" { send "\r"; exp_continue}"Enter same passphrase again:" { send "\r"}}expect eof
EOF
donefor((current=102; current<=104; current++));dofor((host=102; host<=104; host++));dosshpass -p $passwd ssh -q -o StrictHostKeyChecking=no ${user}@hadoop${current} "sshpass -p $passwd ssh-copy-id -o StrictHostKeyChecking=no ${user}@hadoop${host}"done
done

3、执行脚本

[alex@hadoop102 ~]$ auto_ssh_two_expect.sh