shell实现主机间秘钥登录

交互式创建秘钥:

#!/bin/bash
expect  <<EOF
spawn ssh-keygen   -t rsa
expect {
"*id_rsa):"    { send "\r";exp_continue }     
"*(y/n)?"    { send  "\r";exp_continue } 
"*passphrase):"    { send "\r";exp_continue }  
"*again:"    { send "\r" }           
}
expect eof
EOF

脚本实现各主机之间的无密登录:(注:必须各主机的密码相同)

#!/bin/bash
#   ./expect_key.sh  172.18.28.234    172.18.28.235  172.18.28.233  wuai1314. 
HOST_IP01=$1
HOST_IP02=$2
HOST_IP03=$3
PASSWORD=$4
cat >  cr_rsa-key.sh <<EOF
#!/bin/bash
rpm -q expect  &> /dev/null
if [  \$? -ne 0 ];then
yum -y install expect
fi
expect  <<eof
spawn ssh-keygen   -t rsa
expect {
"*id_rsa):"    { send "\r";exp_continue }     
"*(y/n)?"    { send  "\r";exp_continue } 
"*passphrase):"    { send "\r";exp_continue }  
"*again:"    { send "\r" }           
}
expect eof
eof
EOF
cat > key_copy.sh <<EOF
#!/bin/bash
for i in   $HOST_IP01   $HOST_IP02  $HOST_IP03
do
if  [ "\$(ifconfig eth0 | awk 'NR==2{print $2}')" != "\$i" ];then
expect <<eof
spawn ssh-copy-id  root@\$i
expect  {
"yes/no"   {send "yes\r";exp_continue}
"password:" {send "$PASSWORD\r"}
}
expect eof
eof
fi
done
EOF
chmod +x key_copy.sh
chmod +x  cr_rsa-key.sh
bash ./cr_rsa-key.sh
for i in $HOST_IP02  $HOST_IP03
do
expect  <<EOF
spawn scp cr_rsa-key.sh key_copy.sh  root@$i:/root
expect {
"password" { send "$PASSWORD\r" }
"yes/no"   { send "yes\r";exp_continue }
}
expect eof
EOF
expect <<EOF
spawn ssh-copy-id  root@$i
expect  {
"password" {send "$PASSWORD\r"}
"yes/no"   {send "yes\r";exp_continue}
}
expect eof
EOF
expect <<EOF
spawn ssh root@$i
expect {
"password" { send "$PASSWORD\r" }
"yes/no"   { send "yes\r";exp_continue }
}
expect   "]#"   {send "bash /root/cr_rsa-key.sh\r"}
expect   "]#"   {send "bash /root/key_copy.sh\r"}
expect   "]#"   {send "exit\r"}
expect eof
EOF
done
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值