zoukankan      html  css  js  c++  java
  • 批量分发密钥脚本

    批量分发秘钥

    改良版1.1

    #!/bin/bash
    #前提请把公钥默认创建完成
    #例 ssh-keygen  --- 一路回车
    # yum install sshpass -y 先执行
    cat<<eof
    ********************************************
    注:yum install sshpass -y 先执行
    请输入你的网段,查看可用IP地址.  
    例:10.0.0.
    请耐心等待!
    *******************************************
    eof
    read -p "Please enter the network segment where you want to distribute the secret keys : " ip
    read -s -p "Please enter your local password :" pass
    
    echo $ip | grep -Ex '(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[1-9]).((25[0-5]|2[0-4][0-9]|[01]?[0-9]?[0-9]).){2}'  &> /dev/null
    check=$?
    sleep 3
    if [ $check -eq 0 ];
    then
    for i in ${ip}{1..255}
    
     do
    {
                    ping -c 1  $i &> /dev/null
                    if [ $? -ne 0 ];
                    then
                            echo $i &> /dev/null
                    else
                           . /etc/init.d/functions
    timeout 5 sshpass -p$pass ssh-copy-id -f -i  ~/.ssh/id_rsa.pub root@$i -o StrictHostKeyChecking=no  &> /dev/null
                            if [ $? -eq 0 ]
                            then
                            action   "主机 $i"     /bin/true
                            echo   ""
                            else
                            action   "主机 $i"     /bin/false
                            echo   ""
                            fi
                    fi
    }&
            done
    else
       echo  "当前仅支持ipv4格式且是十进制,请重新输入"
    fi
    wait
    echo "结束"

    改良版1.0

    #!/bin/bash
    for i in `cat /etc/ansible/ip.txt`
            do
    {
                    ping -c 1  $i &>/dev/null
                    if [ $? -ne 0 ];
                    then
                            echo $i &> /dev/null
                    else
                            echo $i > /dev/null
                            # yum install sshpass -y 
                            #创建秘钥
                            # ssh-keygen
                            service network start *> /dev/null
                            . /etc/init.d/functions
                   yum install sshpass -y &> /dev/null
    
                            for ipadd in $i
                            do
                            sshpass -pnihao123! ssh-copy-id -i ~/.ssh/id_rsa.pub root@$i -o StrictHostKeyChecking=no &>/dev/null
                            if [ $? -eq 0 ]
                            then
                            action   "主机 $i"     /bin/true
                            echo   ""
                            else
                            action   "主机 $i"     /bin/false
                            echo   ""
                            fi
                            done
                    fi
    }&
            done
    exit 0

    原版

    #!/bin/bash
    #前提请把公钥默认创建完成
    #例 ssh-keygen  --- 一路回车
    cat<<eof
    ********************************************
    请输入你的网段,查看可用IP地址.  
    例:10.0.0
    请耐心等待!
    *******************************************
    eof
    read -p "Please enter the network segment where you want to distribute the secret keys : " ip
    read -s -p "Please enter your local password :" pass
    for i in $ip.{1..253}
            do
    {
                    ping -c 1  $i &>/dev/null
                    if [ $? -ne 0 ];
                    then
                            echo $i &> /dev/null
                    else
                            echo $i > /tmp/ip.txt
                            #先下载 yum install sshpass 
                            #创建秘钥
                            # ssh-keygen 
                            . /etc/init.d/functions
                   yum install sshpass -y *> /dev/null 
                        
                            for ipadd in `cat /tmp/ip.txt`
                            do
                            sshpass -p$pass ssh-copy-id -i ~/.ssh/id_rsa.pub root@$ipadd -o StrictHostKeyChecking=no &>/dev/null
                            if [ $? -eq 0 ]
                            then
                            action   "主机 $ipadd"     /bin/true
                            echo   ""
                            else
                            action   "主机 $ipadd"     /bin/false
                            echo   ""
                            fi
                            done
                    fi
    }&
            done
  • 相关阅读:
    shell 函数
    使用Alpine镜像构建镜像
    macos修改vmware Fusion的NAT网络
    K8s Pod与宿主机时区不同步
    nginx热升级
    awk分析web日志
    k8s 新建用户远程连接集群和context切换
    查询出口公网ip
    微服务之服务网格 Istio
    Systemd 、systemctl进程管理工具
  • 原文地址:https://www.cnblogs.com/Mercury-linux/p/11784277.html
Copyright © 2011-2022 走看看