最好用的信任关系自动化脚本(shell)
1,创建三个文件, 2 father.txt 放需要建立信任关系的服务器ip列表,格式如下 3 passwd.txt 为服务器的登录密码,要求所有服务器的密码一样,如果不一样可以修改rsa.sh脚本 4 rsa.sh 为建立信任关系的脚本
#!/bin/bash
#ssh-keygen -t rsa
basepath=$(cd `dirname $0`; pwd)
echo $basepath
father_file_name=father.txt
#生成密钥
if [ ! -f ~/.ssh/id_rsa ] ; then
ssh-keygen -t rsa -P -f ~/.ssh/id_rsa
fi
cat ~/.ssh/id_rsa.pub >>~/.ssh/authorized_keys
pw=`cat $basepath/passwd.txt`
op_flag=$2
#更新各机器的hosts文件及公匙信息
for HOSTNAME in `cat ${basepath}/${father_file_name}| grep -v 127.0.0.1| grep -v ::1|awk {print $1}`
do
{
sleep 2
mycommand="ssh-copy-id -i /root/.ssh/id_rsa.pub root@${HOSTNAME}"
expect -c "
spawn ${mycommand};
set timeout 60
expect {
"password:" {send "${pw}
"; exp_continue}
"connecting (yes/no)?" {send "yes
"; exp_continue}
}
"
sleep 2
}&
done
wait
