zoukankan      html  css  js  c++  java
  • Linux 使用shell脚本实现自动SSH互信功能

     说假设有一个1000台节点的Hadoop集群,要配置节点之间的SSH免密码登录,该如何用shell脚本实现?
    #!/bin/expect
     
    #循环1000台机器的IP地址,生成密钥文件authorized_keys
     
    for ip in {cat ip.list}
    do
        ssh user@$ip ssh-keygen -t rsa  &>/dev/null
        expect{
                    "yes/no" { send "yes ";exp_continue}
                    "password:"{send "$passwd ";exp_continue}
                  }
        cat ~/.ssh/id_rsa.pub > ~/.ssh/authorized_keys &> /dev/null 
        exit
        if [ !-f ~/.ssh/authorized_keys ];<br>    then
           touch ~/.ssh/authorized_keys<br>    fi
        ssh user@$ip cat ~/.ssh/authorized_keys >> ~/.ssh/authorized_keys  &> /dev/null
        expect{
                    "yes/no" { send "yes ";exp_continue}
                    "password:"{send "$passwd ";exp_continue}
                  }  
    done
     
    #scp authorized_keys 文件到各台机器上面。
    for ip in {cat ip.list}
    do
       scp ~/.ssh/authorized_keys user@$ip:~/.ssh/
        expect{
                    "yes/no" { send "yes ";exp_continue}
                    "password:"{send "$passwd ";exp_continue}
                  } 
    done

    转载自:https://www.cnblogs.com/vovlie/archive/2012/09/16/2688020.html

  • 相关阅读:
    clean code
    jenkins
    获取目录下的文件名称
    bootstrap-select 下拉互斥
    supervisord
    正则表达式
    Docker
    git
    goland工具
    小程序 swiper 轮播图滚动图片 + 视频
  • 原文地址:https://www.cnblogs.com/xibuhaohao/p/11570871.html
Copyright © 2011-2022 走看看