zoukankan      html  css  js  c++  java
  • 批量的单向的ssh 认证

    <pre name="code" class="python">if [  ! $# -eq 2  ] ;then
    echo "请输入用户密码以空格分开"
    exit
    else
    ssh-keygen -t rsa
    #用户名
    uname="$1"
    #密码
    passwd="$2"
    fi
    
    
    #执行检测并安装expect模块
    ep=`rpm -qa | grep expect` 
    
    if [ -z $ep   ] ; then
     echo "检测到你的系统,没有安装expect模块,准备执行安装"
     sleep 2
     yum install -y expect
    
    else
     echo "已经安装expect模块,3秒后,开始执行ssh文件同步"
     sleep 3
    fi
    
    
    
    #公钥无ssh认证模块
    cat hosts | while read host
    do
    
    
    
    echo "当前正在向$host上传输ssh文件"
    expect <<EOF
    spawn  scp -r .ssh/  $host:/$uname 
    expect {
    "*yes/no" {send "yes
    " ;exp_continue}
    "*password:" {send "$passwd
    " ;exp_continue  }
    }
    
    
    EOF
    
    
    
    
    
    echo "当前正在$host上进行公钥认证....."
    sleep 2
    expect <<EOF
    spawn  ssh-copy-id  -i .ssh/id_rsa.pub $host 
    expect {
    "*yes/no" {send "yes
    " ;exp_continue}
    "*password:" {send "$passwd
    " ;exp_continue  }
    }
    
    
    EOF
    
    echo "认证成功...."
    
    done
    
    
    
    
    #切换root权限进行hosts文件分发
    
    
    
    echo "同步本机的hosts文件到各个机器上"
    
    sleep 1
    
    #同步本机的hosts文件到其他各个机器上
    
    
    
    host文件内容:
    
    192.168.32.84上执行这个文件,
    
    demo:/root# cat hosts 
    192.168.32.142
    192.168.32.143
    
    此时从192.168.32.84上发起,可以远程ssh :
    
    反过来在192.168.32.143上执行就不可以:
    
    wze-haproxy:/root# ssh root@192.168.32.84 date
    root@192.168.32.84's password: 
    
    
    
    


    
                                        
    
  • 相关阅读:
    pic32 + Vs1003 正弦测试通过
    c强转问题
    Ucos ii 移植到LPC2148
    Pic32时钟
    linux下的文件扫描程序(转载)
    pic32 spi驱动pmodcls lcd液晶屏
    最*不太*
    vhdl元件例化语句
    被忽略了的gcc 浮点选项
    Linux C/S文件传输和云端文件下载服务模拟
  • 原文地址:https://www.cnblogs.com/hzcya1995/p/13350818.html
Copyright © 2011-2022 走看看