生成私钥和公钥:
for a in {1..8}; do sshpass -p root ssh -o StrictHostKeyChecking=no root@node$a "ssh-keygen -b 2048 -t rsa -f /root/.ssh/id_rsa -q -N ''"; done
合并公钥:
for a in {1..8}; do sshpass -p root ssh root@node$a cat /root/.ssh/id_rsa.pub >> /root/.ssh/authorized_keys ; done
上传公钥:
for a in {1..8}; do ssshpass -p root scp /root/.ssh/authorized_keys root@node$a:/root/.ssh/authorized_keys ; done
两个问题:
1 knownhost:ssh -o StrictHostKeyChecking=no 第一次必须加这样会自动加入knownhost中。
2 authorized_keys:合并上传
# cat serverinfo.list
192.168.101.125,root,root,node1
192.168.101.151,root,root,node2
192.168.101.140,root,root,node3
# cat dd.sh
for iphost in `cat serverinfo.list`
do
echo $iphost
# serverinfo="192.168.101.140,root,root"
serverinfo=$iphost
IP=`echo $serverinfo | awk -F',' '{print $1}'`
USER=`echo $serverinfo | awk -F',' '{print $2}'`
PWD=`echo $serverinfo | awk -F',' '{print $3}'`
HOST=`echo $serverinfo | awk -F',' '{print $4}'`
sshpass -p "$PWD" ssh -o StrictHostKeyChecking=no $USER@$IP "hostnamectl set-hostname $HOST"
done