Shell脚本配置root免密登录到其他主机


本篇文章将会指导您使用shell脚本来配置主机间的免密操作。
脚本依赖expect包实现交互操作。
关于expect包安装方法,请参考附录完成安装。

一、shell脚本代码

下面是shell脚本代码

共分三个步骤
一、配置hosts文件,host文件添加免密主机的信息。
二、判断本地的公钥是否存在,如果不存在则需要生成公钥。
三、复制公钥到免密主机上,实现免密操作。
代码如下所示(示例)

#!/bin/bash
# 配置root免密登录到其他主机
# 传递三个参数 1、免密的主机密码 2、免密主机的IP 3、免密主机的主机名称
# @Author Cym
########################
# 一、配置hosts文件
sed -i '/'"$3"'/d' /etc/hosts
eval `echo $2 $3 >> /etc/hosts`
filepath=~/.ssh/id_rsa.pub
# 二、判断本地的公钥是否存在,如果不存在则需要生成公钥
[ ! -f $filepath ] && {
  ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
}
# 三、实现免密操作
expect -c "set timeout -1;
spawn ssh-copy-id  $3;
expect {
  *(yes/no)* {send -- yes\r;exp_continue;}
  *password:* {send -- $1\r;exp_continue;}
  eof { exit 0;}
}";

二、脚本执行结果演示

脚本结果运行如下图所示,expect会自动帮我们完成交互操作。
shell脚本配置root用户免密登录到其他主机

附录

安装expect

离线安装

离线安装expect需要两个离线包,expect_5.45-2_amd64.deb和tcl8.5_8.5.11-1ubuntu1_amd64.deb,我已经为大家整理完毕放在我的个人空间资源里面,请移步下载。

在线安装

ubuntu系统在线安装使用下面的命令

代码如下所示

apt-get install expect

centOS系统在线安装使用下面的命令

代码如下所示

yum install expect

结语

以上就是Shell脚本配置root免密登录到其他主机的全部内容,喜欢的话点个关注,我会不定期更新技术文章。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

RobertTeacher

你的鼓励将是我创作的最大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值