(九)expect批量公钥推送
(1)expect实现ssh非交互登录
注意:注释不能出现这脚本里面
spawn表示开启一个会话
\r:表示回车,exp_continue :表示没有出现这样,继续往下执行
interact :停留在对面终端
#!/usr/bin/expect
spawn ssh root@192.168.111.101
expect {
"yes/no" { send "yes\r"; exp_continue }
"password" { send "redhat\r" }
}
interact
(2)expect实现批量公钥推送
#!/bin/bash
. /etc/init.d/functions
password=redhat #被推送主机的密码
>ip.txt
#检查是否按照了expect软件
rpm -q expect &>/dev/null
if [ $? -ne 0 ];then
yum install expect -y
if [ $? -eq 0 ];then
echo "install success!"
else
echo "install false!"
exit 2
fi
fi
#检查客户端是否生成了公钥和私钥
if [ ! -f ~/.ssh/id_rsa ];then
ssh-keygen -P "" -f ~/.ssh/id_rsa
if [ $? -eq 0 ];then
echo "success!"
else
exit 2
fi
fi
#检查客户端是否能ping通,如果能ping通就使用expect推送秘钥
for i in {2..254}
do
{
ip=192.168.111.$i
ping -c1 -W1 $ip &>/dev/null
if [ $? -eq 0 ];then
/usr/bin/expect <<-EOF
spawn ssh-copy-id $ip
set time_out 10
expect {
"yes/no" { send "yes\r"; exp_continue }
"password" { send "$password\r" }
}
expect eof
EOF
if [ $? -eq 0 ];then
action "$ip" /bin/true
echo $ip >> ip.txt
else
action "$ip" /bin/false
fi
fi
}&
done
wait
echo "finish......"
(3)for循环实现ssh远程修改配置文件
#!/bin/bash
for ip in $(cat ip.txt)
do
{
ping -c1 -W1 $ip &>/dev/null
if [ $? -eq 0 ];then
ssh $ip "sed -ri '/^#UseDNS/cUseDNS no' /etc/ssh/sshd_config"
ssh $ip "sed -ri '/^GSSAPIAuthentication/cGSSAPIAuthentication no' /etc/ssh/sshd_config"
ssh $ip "systemctl restart sshd_config"
ssh $ip "sed -ri '/SELINUX/cSELINUX=disabled' /etc/sysconfig/selinux"
ssh $ip "setenforce 0"
ssh $ip "systemctl stop firewalld;systemctl disable filewalld"
fi
}&
done
(4)for循环远程批量修改root密码
#!/bin/bash
read -p "please input a New Passowrd:" password
for ip in $(cat ip.txt)
do
{
ping -c1 -W1 $ip &>/dev/null
if [ $? -eq 0 ];then
ssh $ip "echo $password | passwd --stdin root"
if [ $? -eq 0 ];then
echo "$ip" >>ok_$(date +%F).txt
else
echo "$ip" >>false_$(date +%F).txt
fi
else
echo "$ip" >>false_$(date +%F).txt
fi
}&
done
(九)expect批量公钥推送的更多相关文章
- SpringBoot使用异步线程池实现生产环境批量数据推送
前言 SpringBoot使用异步线程池: 1.编写线程池配置类,自定义一个线程池: 2.定义一个异步服务: 3.使用@Async注解指向定义的线程池: 这里以我工作中使用过的一个案例来做描述,我所在 ...
- 自动化运维工具ansible学习+使用ansible批量推送公钥到远程主机
目录: 一.ansible简介 1.1.ansible是什么 1.2.ansible如何工作 1.3.ansible优缺点 1.4.ansible安装方式 1.5.ansible文件简单介绍 1.6. ...
- shell_跳板机推送公钥
#!/bin/bash#push publickey to aap-servers#将局域网内可以ping通的主机ip保存到一个文件> ip_up.txtfor i in {2..10}do { ...
- expect 批量自动部署ssh 免密登陆
[root@node2 ssh]# cat auto_ssh.sh #!/usr/bin/expect -f ########################################## #通 ...
- 手把手教你配置苹果APNS推送服务|钿畑的博客 | 钿畑的博客
http://www.360doc.com/content/15/0118/17/1073512_441822850.shtml# 钿畑的文章索引 1. 什么是推送通知 2. 什么是APNS? 3. ...
- Kindle 推送教程:教你用电子邮箱推送电子书(Kindle伴侣)
Kindle 推送是什么意思?如何通过电子邮件附件推送?或许刚刚接触 Kindle 的朋友对这个概念不是很清楚,其实所谓 Kindle 推送是指亚马逊提供的一个"Kindle 个人文档服务& ...
- ionic中极光推送的集成
1.到极光官网注册账号,新建应用获得appkey. 详见:https://www.jiguang.cn/app/list 2.引入jpush插件 详见:https://github.com/jpush ...
- Kindle 推送教程:教你用电子邮箱推送电子书
Kindle 推送是什么意思?如何通过电子邮件附件推送?或许刚刚接触 Kindle 的朋友对这个概念不是很清楚,其实所谓 Kindle 推送是指亚马逊提供的一个"Kindle 个人文档服务& ...
- [转]Kindle 推送教程:教你用电子邮箱推送电子书
Kindle 推送是什么意思?如何通过电子邮件附件推送?或许刚刚接触 Kindle 的朋友对这个概念不是很清楚,其实所谓 Kindle 推送是指亚马逊提供的一个“Kindle 个人文档服务”,我们只需 ...
随机推荐
- js 给某个div增加class 样式(三种方式)
第一种: el.setAttribute('class','abc'); <!DOCTYPE HTML> <HTML> <HEAD> <meta c ...
- CSS3基础选择器
/*选择器分组:多个选择器使用同一个样式*/ h1,h2,a{ color: blue; } strong{ color: aquamarine; } /*选择器继承:body中未设置样式的会使用继承 ...
- 【bzoj3488】[ONTAK2010]Highways DFS序+树上倍增+树状数组
题目描述 一棵n个点的树,给定m条路径,q次询问包含一条路径的给定路径的个数+1 输入 The first line of input contains a single integer N(1< ...
- G D 3 2 预 处 理 符 号 配 置 中 定 义
Is mainly used in MCU and peripherals to choose, without having to modify macro definitions in the c ...
- Visio中ShapeAdded和SelectionAdded
SelectionAdded 和 ShapeAdded 事件的相似之处在于它们都在创建形状之后触发.它们的区别在于,当单个操作添加多个形状时它们的行为方式不同.假定一个 Paste 操作创建三个新建形 ...
- Palindrome [Manecher]
Palindrome Time Limit: 15000MS Memory Limit: 65536K Total Submissions: 12214 Accepted: 4583 Descript ...
- Win7/8 绿色软件开机启动
在查找番茄工作法PC端软件时,发现了淡高的文章win8绿色软件开机启动,试用了一下wintabs,的确好用! 另外,office软件中有一款 OFFICE tabs的插件,标签式的管理,非常方便快捷, ...
- Java并发(8)- 读写锁中的性能之王:StampedLock
在上一篇<你真的懂ReentrantReadWriteLock吗?>中我给大家留了一个引子,一个更高效同时可以避免写饥饿的读写锁---StampedLock.StampedLock实现了不 ...
- Restful 接口权限控制
前言 有人说,每个人都是平等的: 也有人说,人生来就是不平等的: 在人类社会中,并没有绝对的公平, 一件事,并不是所有人都能去做: 一样物,并不是所有人都能够拥有. 每个人都有自己的角色,每种角色都有 ...
- YDB基本使用详解(转)
第七章YDB基本使用详解 一.如何与YDB对接(交互) 目前延云YDB提供如下几种方式 l命令行的方式 lWeb http接口的方式 lJDBC接口的方式 通过Java编程接入 通过可视化SQL分析统 ...