expect批量分发密钥文件

Posted

tags:

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

在做批量分发的时候第一次是两个脚本来完成,后来做了一个expect嵌套,完成了一个脚本进行集成

前提要求服务器需要安装expect

[[email protected] scripts]# yum -y install expect

脚本分析:

#!/bin/bash
key_file=‘/root/.ssh/id_dsa‘

####################### 判断秘钥文件是否存在 ######################
if [ -f $key_file ]
        then
echo "秘钥文件已存在,准备下一步分发"
        else
ssh-keygen -t dsa -P ‘‘ -f /root/.ssh/id_dsa > /dev/null 2>&1
fi

####################### 批量分发秘钥 #########################
for ip in {128..140}       
do
/usr/bin/expect  << EOF > /dev/null 2>&1
set password "root"
spawn  ssh-copy-id -i $key_file "-p 22 [email protected]$ip"
expect {
        "yes/no"        {send "yes\r";exp_continue}
        "*password"     {send "root\r"}
}
expect eof
EOF

####################### 显示分发状态 ##########################
if [ $? -eq 0 ]
        then
echo "192.168.222.$ip 秘钥分发成功"
#echo 0
        else
echo "192.168.222.$ip 秘钥分发失败"
#echo 1
fi
done

脚本效果实现效果:

[[email protected] scripts]# ./send_file 
秘钥文件已存在,准备下一步分发
192.168.222.128 秘钥分发失败
192.168.222.129 秘钥分发失败
192.168.222.130 秘钥分发成功
192.168.222.131 秘钥分发成功
192.168.222.132 秘钥分发成功
192.168.222.133 秘钥分发失败
192.168.222.134 秘钥分发失败
192.168.222.135 秘钥分发成功
192.168.222.136 秘钥分发失败
192.168.222.137 秘钥分发失败
192.168.222.138 秘钥分发失败
192.168.222.139 秘钥分发失败
192.168.222.140 秘钥分发失败

!!!显示分发成功的服务器就可以直接无密码在服务器上进行登陆了

本文出自 “小小小平凡” 博客,谢绝转载!

以上是关于expect批量分发密钥文件的主要内容,如果未能解决你的问题,请参考以下文章

(转)SSH批量分发管理&非交互式expect

expect脚本同步文件,构建文件分发系统,批量远程执行命令

expect脚本同步文件expect脚本指定host和要同步的文件构建文件分发系统批量远程执行

expect脚本同步文件 expect脚本指定host和要同步的文件 构建文件分发系统 批量远程执行

expect脚本同步文件,expect脚本指定host和要同步的文件,构建文件分发系统,批量远程执行

expect脚本同步文件expect脚本指定host和要同步的文件构建文件分发系统批量远程执行