• 批量的单向的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: 
    
    
    
    


    
       
    
    
  • 相关阅读:
    第一篇:理论篇
    day 3:注释,缩进
    HTML的报告
    SAP DIALOG屏幕新增搜索帮助
    财务凭证科目替代(未写完)
    表维护生成器本地转请求包
    web安全之SQL注入
    Ubuntu16.04 下安装Sublime Text 3
    ubuntu16.04 下安装配置python3.6
    Ubuntu 16.04 下安装 PyCharm
  • 原文地址:https://www.cnblogs.com/zhaoyangjian724/p/6200093.html
Copyright © 2020-2023  润新知