ssh_key_push.sh

[root@ansible-server ansible]# cat ssh_key_push.sh 
#!/bin/bash
#
#**********************************************************************************************
#FileName:      ssh_key_push.sh
#Description:   ssh_key_push for CentOS 7/8 & Ubuntu 18.04/24.04 & Rocky 8
#Copyright (C): 2021 All rights reserved
#*********************************************************************************************
COLOR="echo -e \\033[01;31m"
END='\033[0m'

export SSHPASS=123456
HOSTS="
172.31.0.101
172.31.0.102
172.31.0.103
172.31.0.104
172.31.0.105"

os(){
    OS_ID=`sed -rn '/^NAME=/s@.*="([[:alpha:]]+).*"$@\1@p' /etc/os-release`
}

ssh_key_push(){
    rm -rf ~/.ssh
    ssh-keygen -f /root/.ssh/id_rsa -P '' &> /dev/null
    if [ ${OS_ID} == "CentOS" -o ${OS_ID} == "Rocky" ] &> /dev/null;then
        rpm -q sshpass &> /dev/null || { ${COLOR}"安装sshpass软件包"${END};yum -y install sshpass &> /dev/null; }
    else
        dpkg -S sshpass &> /dev/null || { ${COLOR}"安装sshpass软件包"${END};apt -y install sshpass &> /dev/null; }
    fi
    for i in $HOSTS;do
        {
            sshpass -e ssh-copy-id -o StrictHostKeyChecking=no -i /root/.ssh/id_rsa.pub $i &> /dev/null
            echo $i is finished
        }&
    done
    wait
}

main(){
    os
    ssh_key_push
}

main

[root@ansible-server ansible]# bash ssh_key_push.sh 
172.31.0.104 is finished
172.31.0.102 is finished
172.31.0.101 is finished
172.31.0.105 is finished
172.31.0.103 is finished

 

 

 

posted @ 2022-10-16 15:56  滴滴滴  阅读(71)  评论(0)    收藏  举报