zoukankan      html  css  js  c++  java
  • ssh秘钥免交互批量分发脚本

    将以下内容保存为.sh文件后运行即可,需根据各自情况修改ip_up和ip_arr

    #!/bin/bash
    #脚本功能:ssh秘钥免交互批量分发
    #制 作 人:罗钢 联系方式:278554547@qqcom
    #要点提示:ssh-keygen -f和-n参数免交互生成秘钥;sshpass命令免交互输入密码;ssh -o参数取消提示语句
    . /etc/init.d/functions
    Ip_up=172.16.1.
    Ip_arr="7 31 41"
    Pass_c=123456
    Pass_e=abcdef
    Pub_file=/root/.ssh/id_dsa.pub
    #1.检查公钥文件是否存放,不存在则免交互生成
    if [ ! -f /root/.ssh/id_dsa ];then
      ssh-keygen -t dsa -f /root/.ssh/id_dsa -N ""  >/dev/null 2>&1
    fi
    #2.检查sshpass命令是否存在,不存在则yum安装
    if [ ! -f /usr/bin/sshpass ];then
      yum install -y sshpass  >/dev/null 2>&1
    fi
    #3.for循环分发秘钥,如果已经可以免秘钥的,则跳过,免秘钥后,检查并输出检查结果
    for Ip_down in $Ip_arr
    do
    #3.1 使用错误的密码登录远程主机并执行命令,如果仍然能执行成功则说明已做过免秘钥
      sshpass -p$Pass_e ssh "-o StrictHostKeyChecking=no" $Ip_up$Ip_down hostname >/dev/null 2>&1
      if [ $? -eq 0 ];then
        action "$Ip_up$Ip_down :已经可以免秘钥登录,不需要操作" /bin/true
      else
    #3.2 使用sshpass命令非交互方式输入密码,使用-o参数功能取消提示语句以便免交互分发秘钥
        sshpass -p$Pass_c ssh-copy-id -i $Pub_file "-o StrictHostKeyChecking=no $Ip_up$Ip_down" >/dev/null 2>&1
        if [ $? -eq 0 ];then
           action "免交互分发ssh秘钥到 $Ip_up$Ip_down" /bin/true
        else
           action "免交互分发ssh秘钥到 $Ip_up$Ip_down" /bin/false
        fi
      fi
    done
    
  • 相关阅读:
    Cocos2d-x win7下 android环境搭建
    cocos2dx 环境搭建 win7 +vs2012+ cocos2dx-2.1.4
    IOS 通过界面图标启动Web应用 + 全屏应用 + 添加到主屏幕
    js 魔鬼训练
    远程调试 Weinre
    PHP uniqid 高并发生成不重复唯一ID
    html5 炫酷的字幕雨
    学习建模
    jquery 购物车飞入效果
    jquery/zepto 圣诞节雪花飞扬
  • 原文地址:https://www.cnblogs.com/noah-luo/p/10007715.html
Copyright © 2011-2022 走看看