当前位置:网站首页>Shell脚本配置root免密登录到其他主机
Shell脚本配置root免密登录到其他主机
2022-07-17 05:06:00 【RobertTeacher】
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会自动帮我们完成交互操作。
附录
安装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免密登录到其他主机的全部内容,喜欢的话点个关注,我会不定期更新技术文章。
边栏推荐
- uni-app 条件编译#ifdef #endif 兼容多个终端
- Submit the uniapp form (input, radio, picker) to get the parameter value
- 实习项目1-个性化主页配置
- 模拟库函数
- Internship project 1 - personalized homepage configuration
- 无重复字符的最长字串
- 【LeetCode——编程能力入门第一天】基本数据类型[在区间范围内统计奇数数目/去掉最低工资和最高工资后的工资平均值)
- Excel导入长数据末尾变000
- 基于RTX30显卡的ArcGIS Pro2.8深度学习环境配置
- ES6 real case deconstruction (multidimensional array object) new case:
猜你喜欢

C语言 带你 手撕 通讯录

模拟库函数

Applet editor rich text editing and rich text parsing

单臂路由配置

实习项目2-主页配置-我的数据模块

The code of yolov5 model for pest identification in Title A of the 10th Teddy cup data mining challenge (has been run through, original works, continuously updated)

MapBox 加载本地离线地形

Mongo DB aggregate operations and indexes

Excel计算本月剩余天数

路由器loopback口实验
随机推荐
小程序云开发 上传图片到云存储
【C语言—零基础_学习_复习_第五课】基本运算符的运算性质
Case summary of rotation chart moving speed (constant speed, slow motion)
硬核结构体,暴力解读
STL container - basic operation of vector
滚动轮加载的两种js方法及模态框拖拽归总
IDL 读取葵花8(Himawari-8)HSD数据
微信小程序5-基础加强(没写完)
[2022 10th Teddy Cup Challenge] Title A: complete version of pest identification (general idea. Detailed process and code and results CSV in compressed package)
模拟库函数
STL容器——map的基本操作
【Es6】利用添加数据,筛选并传输至页面等多项功能实现案例
轮播图移动速度(匀速,缓动)案例归总
循环赛制日程表问题
LeetCode53. 最大子数组和
微信小程序状态栏
Using JS to realize the second level menu of anjuke and the full version (demonstration of precautions and problem points)
【C语言—零基础第九课】函数中的爱恨情仇
<script>标签内容详解
Cesium geojson数据的添加与移除