将以下内容保存为.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

ssh秘钥免交互批量分发脚本的更多相关文章

  1. docker ssh秘钥免密登录

    一.概述 有一台跳板机,已经实现了免密登录后端服务器.但是我写了一个django项目,它是运行在容器中的,也需要免密登录后端服务器. 虽然可以在容器中手动做一下免密登录,但是容器重启之后,之前做的设置 ...

  2. shell编程-ssh免交互批量分发公钥脚本

    脚本基本原理 1.控制端免交互创建秘钥和公钥: 1 ssh-keygen -t rsa -f /root/.ssh/id_rsa -N "" 2.免交互发送公钥 1 sshpass ...

  3. ansible 批量推送ssh秘钥

    ansible 批量推送ssh秘钥 参考:http://docs.ansible.com/ansible/authorized_key_module.html # vi /etc/ansible/ho ...

  4. 在windows上使用ssh秘钥连接git服务器

    git部署在centos7上 安装好git后,新建一个用户test(注意要加入git用户组)配置ssh秘钥登录,我的另一篇博客有写配置步骤 重点的地方是在windows系统上使用秘钥登录git服务器 ...

  5. ssh秘钥交换详解与实现 diffie-hellman-group-exchange-sha

    ssh的DH秘钥交换是一套复合几种算法的秘钥交换算法.在RFC4419中称为diffie-hellman-groupX-exchange-shaX 的算法(也有另一种单纯的 rsaX-shaX 交换算 ...

  6. 通过ssh秘钥的方式可以连接上CE68交换机

    结论:按照CE68交换机的用户手册中的指导,可以通过ssh 秘钥的方式连接上交换机. 1.先按照eNSP连接到网卡的方式,给CE68配置一个ip地址: 192.168.56.2 2.按照交换机的用户指 ...

  7. TortoiseGit与GIt生成ssh秘钥添加到github账号的简单方法!简单使用

    今天升级了自己电脑上的git与TortoiseGit,全部换成了最新版,后来不知道怎么的git的秘钥还能使用,可以直接拉取或者提交ssh地址克隆的代码,可是小乌龟客户端就悲剧了 公司的项目有key.p ...

  8. github 生成配置ssh 秘钥方法详解

    如果安装github成功后,当从本地提交文件到github的时候,提交不成功,报错,可能问题就是你还没有生成ssh秘钥 1.当你提交文件到github,不成功,出现如下的情况,就代表着github上面 ...

  9. 【github】添加 ssh 秘钥

    1 生成秘钥 打开shell 备注: 123@example.com 为邮箱地址 ssh-keygen -t rsa -C "123@example.com" 此处选Y ,其他都是 ...

随机推荐

  1. 【Spring Data 系列学习】Spring Data JPA @Query 注解查询

    [Spring Data 系列学习]Spring Data JPA @Query 注解查询 前面的章节讲述了 Spring Data Jpa 通过声明式对数据库进行操作,上手速度快简单易操作.但同时 ...

  2. 手撸MyBatis从配置文件到读出数据库的模拟实现

    手动模拟MyBatis入门案例的底层实现: 需要了解的关键技术: java反射.动态代理(comming soon) 一.Mybatis入门案例 点击此处跳过入门案例 首先看一下MyBatis最基础的 ...

  3. 微博立场检测 60分Baseline

    AI研习社最近举办了一个比赛--微博立场检测,实际上就是一个NLP文本分类的比赛 Baseline-FastText 我的Baseline方法用的是pkuseg分词+FastText,最好成绩是60, ...

  4. 032.核心组件-kube-proxy

    一 kube-proxy原理 1.1 kube-proxy概述 Kubernetes为了支持集群的水平扩展.高可用性,抽象出了Service的概念.Service是对一组Pod的抽象,它会根据访问策略 ...

  5. Callable的Future模式

    一.线程实现方式 1.继承Thread类 2.实现Runnable接口 3.线程池 4.Callable 二.无论使用继承Thread类还是实现Runnable接口,还是使用线程池都没有办法解决2个问 ...

  6. upload-labs学习笔记

    项目地址:https://github.com/c0ny1/upload-labs   运行环境 操作系统:windows.Linux php版本:推荐5.2.17(其他版本可能会导致部分Pass无法 ...

  7. CDNbest-设置不缓存

    写在开始之前 有时候根据业务需求,我们网站不需要缓存,这时候就需要设置下 让网站不走缓存 步骤一 登录平台找到我们的站点->站点设置->缓存设置 如图 备注:填写需要操作的域名,时间为&q ...

  8. 李宏毅老师机器学习课程笔记_ML Lecture 2: Where does the error come from?

    引言: 最近开始学习"机器学习",早就听说祖国宝岛的李宏毅老师的大名,一直没有时间看他的系列课程.今天听了一课,感觉非常棒,通俗易懂,而又能够抓住重点,中间还能加上一些很有趣的例子 ...

  9. SpringMVC常见面试题总结(超详细回答)

    SpringMVC常见面试题总结(超详细回答) 1.什么是Spring MVC ?简单介绍下你对springMVC的理解? Spring MVC是一个基于Java的实现了MVC设计模式的请求驱动类型的 ...

  10. MATLAB中mean的用法

    https://blog.csdn.net/wangyang20170901/article/details/78745587 MATLAB中mean的用法 转载仙女阳 最后发布于2017-12-07 ...