学习记录:Centos7使用shell编写远程到其他服务器的脚本

学习记录:服务器之间相互免密

需要用到一个脚本和一个用来存储IP地址的文件
把需要做免密的IP写到一个hostlist.txt的文件里面,例如:

192.168.0.1
192.168.0.2
192.168.0.3

下面我们来编写远程免密脚本

#!/bin/bash

#Author: xueshan
#Created time: 2022/08/04 14:44
#Release: 1.0.1
#Script Description: server avoid close

if [ ! -f ~/.ssh/id_rsa ];then

 ssh-keygen -t rsa

else

 echo "id_rsa has created ..."

fi

yum -y install expect

 while read line

  do

    user="root"

    ip=`echo $line | cut -d " " -f 1`

    passwd="123456"

    expect <<EOF

      set timeout 10

      spawn ssh-copy-id -i /root/.ssh/id_rsa.pub $user@$ip

      expect {

        "yes/no" { send "yes\n";exp_continue }

        "password" { send "$passwd\n" }

      }

      expect "password" { send "$passwd\n" }

EOF

 done < hostlist.txt

这里需要注意的是,脚本和hostlist.txt文件需要放在同一个路径下,如果hostlist文件放在其他的路径,则
done < hostlist.txt 需要在hostlist.txt前面加上文件的绝对路径!
有几个需要做免密的服务器,就要在对应的每一个服务器上面都运行这个脚本,并且需要携带hostlist.txt文件,注意,文件内IP地址要一致哦!
在我们执行完脚本之后,输入

ssh ip  #ip是咱们做好免密的服务器IP.

如果没有提示输入密码,即视为成功(部分服务器需要在第一次远程登录的时候需要输入一次密码,做好免密之后就不需要再次输入)。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

雪山_消逝的星

您的鼓励是我学习路上永远的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值