一、判断密钥对是否存在,自动生成
直接复制即可
cat <<END >> /root/ssh.sh
if [ ! -f ~/.ssh/id_rsa ];then
ssh-keygen -t rsa -P '' -f /root/.ssh/id_rsa &> /dev/null
else
echo "已存在密钥对"
fi
rm -rf /root/ssh.sh
END
bash ssh.sh
二、批量复制公匙到服务器
注意: 执行以下脚本的前提需要先在“所有服务器”上先生成密钥对
注意:是所有服务器
复制前核对IP及密码
cat <<END >> /root/ssh.sh
#!/bin/bash
#指定密码
password=123.com
#安装所需软件
yum -y install expect >> /dev/null
#循环免登IP
for i in {10,11,12}
do
expect <<-EOF
set timeout 5
spawn ssh-copy-id -i /root/.ssh/id_rsa.pub root@192.168.2.\$i
expect {
"yes/no" { send "yes\n";exp_continue }
"password:" { send "\$password\n" }
}
interact
expect eof
EOF
done
END
bash ssh.sh
验证:可以互相免登
[root@C7-10 ~]# ssh root@192.168.2.11
Last login: Sun Mar 6 21:37:33 2022 from 192.168.2.254
[root@C7--11 ~]# exit
登出
Connection to 192.168.2.11 closed.
[root@C7-10 ~]# ssh root@192.168.2.12
Last login: Sun Mar 6 21:37:36 2022 from 192.168.2.254
[root@localhost ~]# exit
登出
————————————————————————————————————————————————————————————-
[root@C7--11 ~]# ssh root@192.168.2.12
Last login: Sun Mar 6 21:45:34 2022 from 192.168.2.10
[root@localhost ~]# exit
登出
Connection to 192.168.2.12 closed.
[root@C7--11 ~]# ssh root@192.168.2.10
Last login: Sun Mar 6 21:37:30 2022 from 192.168.2.254
[root@C7-10 ~]# exit
登出
——————————————————————————————————————————————————————————————
[root@localhost ~]# ssh root@192.168.2.10
Last login: Sun Mar 6 21:45:48 2022 from 192.168.2.11
[root@C7-10 ~]# exit
登出
Connection to 192.168.2.10 closed.
[root@localhost ~]# ssh root@192.168.2.11
Last login: Sun Mar 6 21:45:29 2022 from 192.168.2.10
过程:1、生成密钥对;2、修改 ip;3、修改登录密码、4、复制粘贴