批量免密登录

来源:互联网 发布:8080端口怎么打开 编辑:程序博客网 时间:2024/05/21 19:38

生成私钥和公钥:

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