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
ssh秘钥免交互批量分发脚本的更多相关文章
- docker ssh秘钥免密登录
一.概述 有一台跳板机,已经实现了免密登录后端服务器.但是我写了一个django项目,它是运行在容器中的,也需要免密登录后端服务器. 虽然可以在容器中手动做一下免密登录,但是容器重启之后,之前做的设置 ...
- shell编程-ssh免交互批量分发公钥脚本
脚本基本原理 1.控制端免交互创建秘钥和公钥: 1 ssh-keygen -t rsa -f /root/.ssh/id_rsa -N "" 2.免交互发送公钥 1 sshpass ...
- ansible 批量推送ssh秘钥
ansible 批量推送ssh秘钥 参考:http://docs.ansible.com/ansible/authorized_key_module.html # vi /etc/ansible/ho ...
- 在windows上使用ssh秘钥连接git服务器
git部署在centos7上 安装好git后,新建一个用户test(注意要加入git用户组)配置ssh秘钥登录,我的另一篇博客有写配置步骤 重点的地方是在windows系统上使用秘钥登录git服务器 ...
- ssh秘钥交换详解与实现 diffie-hellman-group-exchange-sha
ssh的DH秘钥交换是一套复合几种算法的秘钥交换算法.在RFC4419中称为diffie-hellman-groupX-exchange-shaX 的算法(也有另一种单纯的 rsaX-shaX 交换算 ...
- 通过ssh秘钥的方式可以连接上CE68交换机
结论:按照CE68交换机的用户手册中的指导,可以通过ssh 秘钥的方式连接上交换机. 1.先按照eNSP连接到网卡的方式,给CE68配置一个ip地址: 192.168.56.2 2.按照交换机的用户指 ...
- TortoiseGit与GIt生成ssh秘钥添加到github账号的简单方法!简单使用
今天升级了自己电脑上的git与TortoiseGit,全部换成了最新版,后来不知道怎么的git的秘钥还能使用,可以直接拉取或者提交ssh地址克隆的代码,可是小乌龟客户端就悲剧了 公司的项目有key.p ...
- github 生成配置ssh 秘钥方法详解
如果安装github成功后,当从本地提交文件到github的时候,提交不成功,报错,可能问题就是你还没有生成ssh秘钥 1.当你提交文件到github,不成功,出现如下的情况,就代表着github上面 ...
- 【github】添加 ssh 秘钥
1 生成秘钥 打开shell 备注: 123@example.com 为邮箱地址 ssh-keygen -t rsa -C "123@example.com" 此处选Y ,其他都是 ...
随机推荐
- go源码分析(一) 通过调试看go程序初始化过程
参考资料:Go 1.5 源码剖析 (书签版).pdf 编写go语言test.go package main import ( "fmt" ) func main(){ fmt.Pr ...
- DOTNET CORE源码分析之IServiceProvider、ServiceProvider、IServiceProviderEngine、ServiceProviderEngine和ServiceProviderEngineScope
首先谈一下IServiceProvider IServiceProvider只提供给了一个根据类型获取对象的功能,试想一下IOC总得有一个找到对象,具体如下 public interface ISer ...
- JavaScript每日学习日记(0)
8.10.2019 1.JavaScript能改变HTML内容.属性.样式,能隐藏或显示HTML元素. 2.JavaScript函数可以任意数量被放置在<body>.<head> ...
- 《Explaining and harnessing adversarial examples》 论文学习报告
<Explaining and harnessing adversarial examples> 论文学习报告 组员:裴建新 赖妍菱 周子玉 2020-03-27 1 背景 Sz ...
- 在一台Linux服务器上安装多个MySQL实例(一)--使用mysqld_multi方式
(一)MySQL多实例概述 实例是进程与内存的一个概述,所谓MySQL多实例,就是在服务器上启动多个相同的MySQL进程,运行在不同的端口(如3306,3307,3308),通过不同的端口对外提供服务 ...
- 采用vue编写的功能强大的swagger-ui页面
think-swagger-ui-vuele swagger-ui有非常多的版本,觉得不太好用,用postman,每个接口都要自己进行录入.所以在基于think-vuele进行了swagger格式js ...
- 关于Anaconda安装以后使用Jupyter Notebook无法直接打开浏览器的解决方法
关于Anaconda安装以后使用Jupyter Notebook无法直接打开浏览器的解决方法 1.首先打开Anoconda Prompt,输入命令 jupyter notebook --generat ...
- 如何使用 electron 屏幕或摄像头录制并保存到本地
思路分析 通过 electron desktopCapturer 和 navigator 获取要进行录制的媒体源信息: 使用 MediaRecorder 对视频流进行录制: 将 MediaRecord ...
- postgre安装和使用(R&Python)
安装postgre http://helianthus-code.lofter.com/post/1dfe03e0_1c68233aa 这里选C更好 这里口令密码输入就是黑的 我装的时候反复报错,查了 ...
- OpenCV-Python 形态学转换 | 十七
目标 在这一章当中, 我们将学习不同的形态学操作,例如侵蚀,膨胀,开运算,闭运算等. 我们将看到不同的功能,例如:cv.erode(),cv.dilate(), cv.morphologyEx()等. ...