Linux 双机互信

Linux 双机互信脚本如下:

#!/bin/bash
#字颜色变量
BLACK="\033[30m"         #黑色
RED="\033[31m"           #红色
GREEN="\033[32m"         #绿色
YELLOW="\033[33m"        #黄色
BLUE="\033[34m"          #蓝色
PURPLE="\033[35m"        #紫色
SKY_GREEN="\033[36m "    #天绿色
WHITE="\033[37m"         #白色

#字背景颜色变量
BLACK_WHITE="\033[40;37m"      #黑底白字
RED_WHITE="\033[41;37m"        #红底白字
GREEN_WHITE="\033[42;37m"      #绿底白字
YELLOW_WHITE="\033[43;37m"     #黄底白字
BLUE_WHITE="\033[44;37m"       #蓝底白字
PURPLE_WHITE="\033[45;37m"     #紫底白字
WHITE_BLACK="\033[47;30m"      #白底黑字
SKY_BLUE_WHITE="\033[46;37m"   #天蓝底白字

#闪炼变量
FLICKER="\033[05m"

#头部
OUTPUT="echo -e"

#尾部
TAILS="\033[0m"

[ -x /usr/bin/expect ]  || yum install expect  -y
ssh-keygen -t rsa  -P ""  -f ~/.ssh/id_rsa
cat  ~/.ssh/id_rsa.pub  >  /root/.ssh/authorized_keys
network_card=`ifconfig  |egrep  "ens33" |head -n 1 |awk   -F ":" '{print $1}'|head  -n 1`
Network=`ifconfig  $network_card |awk '/broadcast/{print $2}' | awk -F '.'  '{print $1"."$2"."$3}'`
files=/root/IP.txt
[ -f $files ] || touch $files
echo " "  >  $files
#只适用于局域网,保证同网段
read -p   "搜索${Network}的起始地址:" start
read -p   "搜索${Network}的结始地址:" end
#bs=`expr $b + 1`
for  start_end  in  `seq $start $end`
do
    (ping -c 3 "$Network".$start_end  > /dev/null
    if [ $? -eq 0 ];then
        echo  "$Network".$start_end  >>  $files
        $OUTPUT $GREEN"获取局域网"$Network"."$start_end"在线主机" $TAILS
    else
        $OUTPUT $RED"获取局域网"$Network"."$start_end"不在线主机" $TAILS
    fi)&
done
#节点的访问的机器无需再次进行认证,信息存在在known_hosts文件,如有可注释下面的代码
#MyIp=`ifconfig  $network_card |awk '/broadcast/{print $2}'`
#IP=`cat /root/IP.txt |grep  -v $MyIp |xargs`
IP=`cat /root/IP.txt  |xargs`
for  i in  ${IP[@]}
do
/usr/bin/expect <<-EOF
spawn ssh-copy-id    root@$i
expect {
      "yes/no"  {send "yes\n";exp_continue}
      "password"  {send "root\n"}
    }
    expect eof
EOF
        #将对方的公钥传到本地
        ssh root@$i  'echo |ssh-keygen -t rsa  -P ""  -f ~/.ssh/id_rsa'
        #scp 复制过去的文件会覆盖之前的内容,为数据提供了更好的方便,host就是个中转站而已
        scp   -r   $i:/root/.ssh/id_rsa.pub    /root/.ssh/host
        cat  /root/.ssh/host  >> /root/.ssh/authorized_keys
done
        #将上线的主机公钥全部传给各个主机,让其全部免密登入
for  io in ${IP[@]}
do
        scp -r /root/.ssh/authorized_keys   $io:/root/.ssh/authorized_keys
done
#删除多余文件,如果需要可以查看获取的IP地,址注释掉下面代码取消删除
[ -f $files ]  &&   rm  -rf   $files

在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值