【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
我的一点点工作