【Shell】SSH批量免密脚本

脚本内容

#!/bin/bash
#
#********************************************************************
# [Author]:          NPC
# [Date]:            2020-08-13
# [Description]:     SSH batch free password
#********************************************************************

# 检测安装expect,Expect是Unix系统中用来进行自动化控制和测试的软件工具。
# 作为Tcl脚本语言的一个扩展,应用在交互式软件中如telnet,ftp,Passwd,fsck,rlogin,tip,ssh等等
if ! rpm -q expect > /dev/null ; then
    
     yum -y install expect &> /dev/null
   
    if [ $? -ne 0 ]; then
         echo expect install failed !
         exit 1
    fi 
     
fi

# Determine whether the ssh key is generated, if not, then generate
if [ ! -f ~/.ssh/id_rsa ]; then

     ssh-keygen -f /root/.ssh/id_rsa  -P ''
    
fi

# Transmission public key
# IP.txt must be placed in the same folder as the script

while read ip user password
do
expect<<-END
spawn  ssh-copy-id $user@$ip
expect {
"connecting (yes/no)?" {send "yes\r"; exp_continue}
"password:" {send "${password}\r"; exp_continue}
}
expect eof
exit
END
done < IP_list.txt

文件内容

IP.txt
各字段间只能有一个空格,不能有tab键

# IP 用户名 密码
10.10.2.88 root q

使用方法

将需要配置免密的服务器信息按照格式写入到文件内,文件和脚本放到同一目录,执行脚本即可。

/bin/bash ssh_bach.sh
posted @ 2020-09-30 22:42  apnpc  阅读(346)  评论(0编辑  收藏  举报