脚本说明
本脚本主要目的是能批量的对远程服务器进行ssh免密钥操作。
脚本代码
#!/bin/bash
work_dir=/root/ys/recy_sshkey
pub_file=/root/.ssh/id_rsa.pub
function_upssh()
{
expect -c "
spawn ssh-copy-id -i ${pub_file} root@$1
expect {
\"*yes/no*\" {send \"yes\r\";exp_continue}
\"*password*\" {send $2\r;exp_continue}}"
}
[ -f ${pub_file} ] || ssh-keygen -t rsa -P '' -f /root/.ssh/id_rsa
for Ip in `awk '{print $1}' ${work_dir}/hosts.txt`
do
Passwd=`awk -v I=${Ip} '{if(I==$1) print $2}' ${work_dir}/hosts.txt`
function_upssh ${Ip} ${Passwd}
done
密码文件
[root@Zabbix_Server recy_sshkey]# cat hosts.txt
192.168.42.28 1qaz3edc
192.168.42.29 1qaz3edc
192.168.42.30 1qaz3edc
192.168.42.31 1qaz3edc
192.168.42.32 1qaz3edc
192.168.42.33 1qaz3edc