自动分发秘钥脚本(复制修改ip即可使用)
秘钥分发目的是在大量节点时:可节省在使用自动化运维工具(ansible,saltstack等)定义的tag标签等,不管是使用ansible-play -t tag1还是ansible-playbooks --skip-tags tag1,都要节省时间,可直接登录到该节点进行操作;后续scp命令等都使用比较方便
需要用到expect命令,配置好阿里源直接yum即可
yum install expect -y
秘钥信息(隐藏文件,使用ls -a查看)默认保存在/root/.ssh/目录下存在id_rsa,id_rsa.pub
当分发秘钥成功后会生成一个类似ansible中/etc/ansible/hosts文件
在这个文件中保存着通过秘钥认证的主机
用if语句(单分支,双分支,多分支均可)进行判断在/root/.ssh目录中是否保存之前的秘钥信息;
-e包含文件(f)和目录(d);
expect 为交互命令,{send \r}可理解为在生成秘钥行(ssh-keygen)的时候执行回车命令。
后使用for循环进行秘钥分发。注:在执行秘钥分发时可能会出现hang住的情况,此情况大概率是秘钥分发主机网络不通情况导致。
出现此情况可选加set timeout 6;表示在6秒内完成秘钥分发,如6秒内没有完成,自动跳转另一个循环。
特别注意:在使用for语句时候一定要在后面加上done,由于使用输入重定向,在最后写入eof后总感觉脚本已经完成,执行时报错,检查脚本发现少done......(粗心)
#!/bin/bash
yum install expect -y
#rm -rf /root/.ssh/*
if [ -e /root/.ssh/id_rsa ];thenrm -rf /root/.ssh/*
fi#ssh-keygen
/usr/bin/expect<<eof
spawn ssh-keygen
expect {
"(/root/.ssh/id_rsa)" {send \r;exp_continue}
"passphrase" {send \r;exp_continue}
"again" {send \r}
}
expect eof
exit
eof#ssh-copy-id
ip=192.168.10.
for i in {1..100}
do
/usr/bin/expect<<eof
spawn ssh-copy-id $ip$i
expect {
"yes/no" {send yes\r;exp_continue}
"password" {send root\r} #root替换为你的密码
}
expect eof
exit
eof
done
自动分发秘钥脚本(复制修改ip即可使用)相关推荐
- java 修改ip_如何用脚本快速修改IP地址(Netsh)
评论 # re: 如何用脚本快速修改IP地址(Netsh) 2006-03-30 15:36 david.turing (2006-03-30 15:12:48) 胡子鱼-SD(18684412) 另 ...
- Windows下用.bat脚本快速修改IP地址
文章目录 一.将ip地址改为静态固定ip 1.新建一个.bat文本文件 2.将以下代码复制到文本中 3.将文本另存为(保证编码格式为:ANSI,否则运行无效) 4.以管理员身份运行(否则无效) 二.将 ...
- 自动重启某个网卡脚本(根据IP确定网卡)
#! /bin/sha=`ifconfig | grep -B1 "192.168.6.88"` #echo $a b=`printf $a` #echo $bsudo -S if ...
- sshpass做秘钥分发,ansible做自动化运维工具
最近公司机器的增多,顺便还要上报表系统,考虑到服务器越来越多,手工的管理显得越来的越吃力,所以打算推进公司自动化运维工具的使用. 推进的过程中,一步一个坑踩过来的.由于公司之前未运用过自动化运维工具, ...
- 动态秘钥分发(基于PKI)的方案论文详读
1. 题目解析 题目动态秘钥分发由来: 分发方式:车辆从其最近的路侧单元动态地请求钥匙. 该请求通过网络基础结构安全地传播,以到达CA云,并返回密钥: 从分发方式中我们可以知道这是一种动态请求从CA中 ...
- 【Linux】循序渐进学运维-服务篇-SSH秘钥认证
大家好,我是高胜寒,本文是Linux运维-循序渐进学运维-服务篇的第5篇文章 文章目录 前言 为什么用密钥认证 秘钥认证流程 秘钥生成及使用 1. 交互式创建及分发秘钥 a) 生成秘钥 b) 分发秘钥 ...
- JWT整合springboot 自定义定时更换秘钥
JWT整合springboot 自定义定时更换秘钥 jwt概要: JWT(JSON WEB TOKEN):JSON网络令牌,JWT是一个轻便的安全跨平台传输格式,定义了一个紧凑的自包含的方式在不同实体 ...
- iOS安全之RSA加密/生成公钥、秘钥 pem文件
在iOS中使用RSA加密解密,需要用到.der和.p12后缀格式的文件,其中.der格式的文件存放的是公钥(Public key)用于加密,.p12格式的文件存放的是私钥(Private key)用于 ...
- iOS RSA加密 以及生成公钥 秘钥 pem文件
在iOS中使用RSA加密解密,需要用到.der和.p12后缀格式的文件,其中.der格式的文件存放的是公钥(Public key)用于加密,.p12格式的文件存放的是私钥(Private key)用于 ...
最新文章
- 环境微生物期刊—Applied and Environmental Microbiology
- 八皇后问题(递归+非递归)
- 【ssh从零单排】eclipse和tomcat整合配置
- 内置函数、匿名函数,递归函数
- linux cut列截取工具使用示例
- jdk自带的Unicode转utf8工具
- cesium js 路径_vue2.0项目集成Cesium的实现方法
- power designer数据流图_鲲云公开课 | 三分钟带你了解数据流架构
- 倒计时1天,BDTC2016最新完整版日程公布
- bash shell 命令行选项的用法
- HTML页面中显示时间
- 中国医科大学网络教育学院试卷计算机,中国医科大学网络教育学院补考试卷
- 搜狗输入法 android 历史版本,搜狗输入法旧版
- Matlab加矩形窗程序,基于MATLAB结合矩形窗设计FIR滤波器
- PHP file_get_contents函数详解
- Linux-进程控制详解(进程创建+进程终止+进程等待+进程程序替换)
- Python创建免费Ip代理池,伪装Ip。
- 【web自动化测试】
- Seurat-单细胞文献复现第二弹-01
- card_list_operation.erl