集群ssh免密登陆配置

#!/bin/bash


function auto_ssh() 
{
    expectIsExists=`dpkg -l |grep expect` 
    if [ -z $expectIsExists ]
    then
        sudo apt-get update
        sudo apt-get  install expect -y
    fi

    [ ! -f /root/.ssh/id_rsa.pub ] && ssh-keygen -t rsa -P '' &>/dev/null  # 密钥对不存在则创建密钥

    while read line;do
            ip=`echo $line | cut -d " " -f1`             
            user_name=`echo $line | cut -d " " -f2`      
            pass_word=`echo $line | cut -d " " -f3`      
    expect <<EOF
            spawn ssh-copy-id -i /root/.ssh/id_rsa.pub $user_name@$ip   
            expect {
                    "yes/no" { send "yes\n";exp_continue}     
                    "password" { send "$pass_word\n"}
            }
            expect eof
EOF
done < host_ip.txt 
}

function hosts() 
{
    while read -r line;do
        ip=`echo $line | cut -d " " -f1` 
        hostname=`echo $line | cut -d " " -f4` 
        echo "${ip}   ${hostname}" >> /etc/hosts
    done < host_ip.txt 
}

 
auto_ssh
hosts

# cat host_ip.txt 
# 172.21.80.1 root password node-001
# 172.21.80.2 root password node-002
# 172.21.80.3 root password node-003

  

posted @ 2022-06-25 12:30  象飞田  阅读(52)  评论(0编辑  收藏  举报