shell脚本批量推送公钥

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了shell脚本批量推送公钥相关的知识,希望对你有一定的参考价值。

针对大量的主机时,推送公钥需要一个个的输入IP和对面的密码显得异常的麻烦,所以写了个shell脚本进行批量推送。
先yum安装一个expect软件,这个软件是负责交互的。
这里先把需要推送的主机IP写入到一个文本中,后续读区的IP从这个文本中调用。
技术分享图片

#!/bin/bash
all=`cat /opt/ip.txt`     #定义一个变量,查看文本中的内容
for i in $all    #定义i变量,逐个查看
do
password="123456" #定义对方的密码 
/usr/bin/expect -c "      #expect命令的路径
        spawn ssh-copy-id [email protected]$i  #推送ip为逐个查看的变量i
        expect {
         "*(yes/no)" { send "yes
";exp_continue }   #当匹配到yes/no时,回答yes
        "*password" { send "$password
"; exp_continue } #当匹配到password的时候回答的密码为我们定义的
        }     
expect eof"
done

这样就可以直接免交互的进行推送了。

以上是关于shell脚本批量推送公钥的主要内容,如果未能解决你的问题,请参考以下文章

自动化运维Ansible批量部署服务+shell脚本批量推送公钥

使用Shell脚本+expect批量部署ssh

Expect实现批量主机公钥推送

shell脚本实现ssh-copy-id批量自动发送公钥到远程主机

使用ansible批量推送秘钥

自己写的playbook批量修改密码并推送公钥,实现免密登录!