Linux 批量配置互信
批量配置SSH互信脚本
#!/bin/bash# 定义目标机器列表
machines=(
"192.168.122.87"
"192.168.122.89"
"192.168.122.90"
)
set -o errexit
# 设置默认的用户名和密码
default_username="root"
default_password="111111"# 读取目标机器的用户名和密码
read -p "Enter username [$default_username]: " username
read -s -p "Enter password [$default_password]: " password
echo# 使用默认值,如果没有输入用户名或密码
if [[ -z $username ]]; thenusername=$default_username
fiif [[ -z $password ]]; thenpassword=$default_password
fiif command -v sshpass &> /dev/null
thenecho "sshpass command is available"
elseecho "sshpass command is not available"##### yum install if [ -x /usr/bin/yum ]; thenecho "Try to execute yum install.."yum -y install sshpasselseecho "ERROR: An exception occurred during the installation of sshpass ! "exit -1fi
fifunction chk_ssh(){# ssh 公私钥路径ssh_dir="$HOME/.ssh"private_key="$ssh_dir/id_rsa"public_key="$ssh_dir/id_rsa.pub"# 检查~/.ssh目录是否存在if [ ! -d "$ssh_dir" ]; thenmkdir -p "$ssh_dir"fi# 检查是否存在私钥和公钥文件if [ ! -f "$private_key" ] || [ ! -f "$public_key" ]; then# 生成密钥文件ssh-keygen -t rsa -b 2048 -N "" -q -f "$private_key"echo "Generated new SSH key pair: $private_key and $public_key"elseecho "SSH key pair already exists: $private_key and $public_key"fi
}# 循环遍历目标机器列表,判断主机是否有密钥
for machine in "${machines[@]}"
doecho "Configuring passwordless access for $machine"sshpass -p "$password" ssh -o StrictHostKeyChecking=no $username@$machine "bash -s" << EOF
# 将本地函数chk_ssh传递给远程服务器
$(declare -f chk_ssh)
chk_ssh
EOF
done# 循环遍历目标机器列表,获取公钥
rm -f /tmp/authorized_keys
for machine in "${machines[@]}"
doecho "Get the public key file in $machine to authorized keys"# sshpass -p "$password" ssh-copy-id -o StrictHostKeyChecking=no $username@$machinesshpass -p "$password" ssh -o StrictHostKeyChecking=no $username@$machine "cat ~/.ssh/id_rsa.pub " >> /tmp/authorized_keys
done# 下发认证文件
for machine in "${machines[@]}"
doecho "Configuring passwordless access for $machine"sshpass -p "$password" scp -o StrictHostKeyChecking=no /tmp/authorized_keys $username@$machine:$HOME/.ssh
doneif [ $? == 0 ]
thenecho "Passwordless access configured successfully for all machines."rm -f /tmp/authorized_keys
fi相关文章:
Linux 批量配置互信
批量配置SSH互信脚本 #!/bin/bash# 定义目标机器列表 machines( "192.168.122.87" "192.168.122.89" "192.168.122.90" ) set -o errexit # 设置默认的用户名和密码 default_username"root" default_password"111111"# 读取…...
设计定长的内存池
目录 定长内存池设计设计思路具体实现定长内存池初始化T*New()申请内存代码 void Delete(T* obj)回收内存代码 设计的总代码测试代码 Objectpool.h文件代码test.cpp文件代码拓展windows和Linux下如何直接向堆申请页为单位的大块内存: 感谢各位大佬对我的支持,如果我…...
【动手学电机驱动】 STM32-FOC(7)基于 MCSDK6.0 控制与调试速度环
STM32-FOC(1)STM32 电机控制的软件开发环境 STM32-FOC(2)STM32 导入和创建项目 STM32-FOC(3)STM32 三路互补 PWM 输出 STM32-FOC(4)IHM03 电机控制套件介绍 STM32-FOC(5&…...
无人机飞手考证,地面站培训技术详解
无人机飞手考证及地面站培训技术涉及多个关键方面,以下是对这些方面的详细解析: 一、无人机飞手考证流程与要求 1. 证书类型 民用无人机驾驶员证书:这是国家民航局颁发的无人机操作人员资质证书,分为视距内驾驶员、超视距驾驶员…...
音视频入门基础:MPEG2-TS专题(3)——TS Header简介
注:本文有部分内容引用了维基百科:https://zh.wikipedia.org/wiki/MPEG2-TS 一、引言 本文对MPEG2-TS格式的TS Header进行简介。 进行简介之前,请各位先下载MPEG2-TS的官方文档。ITU-T和ISO/IEC都分别提供MPEG2-TS的官方文档。但是ITU提供的…...
Sam Altman:年底将有重磅更新,但不是GPT-5!
大家好,我是木易,一个持续关注AI领域的互联网技术产品经理,国内Top2本科,美国Top10 CS研究生,MBA。我坚信AI是普通人变强的“外挂”,专注于分享AI全维度知识,包括但不限于AI科普,AI工…...
基于物联网的智能超市快速结算系统
摘 要 当今社会的商品层出不穷,人们因为越来越多大型仓储超市的出现使得生活更加便利,但许多随之而来的新问题也给人们带来了许多的不便,例如商家一直被更换标签不及时、货物丢失、超市内物品更换处理不及时、超市内人流高峰期人流控制不得…...
241111.学习日志——[CSDIY] Cpp零基础速成 [00]
CSDIY:这是一个非科班学生的努力之路,从今天开始这个系列会长期更新,(最好做到日更),我会慢慢把自己目前对CS的努力逐一上传,帮助那些和我一样有着梦想的玩家取得胜利!!&…...
湘潭大学软件工程算法设计与分析实验-模拟退火算法
文章目录 写在前面代码分析 写在前面 总共是要四份代码,好像都是实现背包问题,前面三个都比较简单直观,朋友上周在机房给我讲解了一下之后,我大概弄清楚了,这周好像是最后一次算法课了,所以明天我得把剩下…...
Three.js 零基础+概念理解
文章目录 一、Three.js基础概念(一)什么是Three.js(二)核心对象(三)几何体(Geometries)和材质(Materials) 二、基础实例应用(一)创建一…...
c#使用COM接口设置excel单元格宽高匹配图片,如何计算?
c#使用COM接口设置excel单元格宽高如何换算 在实际工作中,经常需要在excel中插入图片。并设置单元格与图片对齐。但是excel单元格的宽度和高度使用不同的单位。单元格的宽度以字符宽度为单位,而高度以点为单位。如果按照实际值来设置,例如设…...
Excel模板下载\数据导出
pom <dependency><groupId>org.apache.poi</groupId><artifactId>poi-ooxml</artifactId><version>4.1.2</version> </dependency><build><resources><resource><!--将xlsx打包到jar--><director…...
Vite初始化Vue3+Typescrpt项目
初始化项目 安装 Vite 首先,确保你的 Node.js 版本 > 12.0.0。然后在命令行中运行以下命令来创建一个 Vite Vue 3 TypeScript 的项目模板: npm init vitelatest进入项目目录 创建完成后,进入项目目录: cd vue3-demo启动…...
深入剖析【C++继承】:单一继承与多重继承的策略与实践,解锁代码复用和多态的编程精髓,迈向高级C++编程之旅
🌟个人主页:落叶 🌟当前专栏: C专栏 目录 继承的概念及定义 继承的概念 继承定义 定义格式 继承基类成员访问⽅式的变化 继承类模板 基类和派⽣类间的转换 继承中的作⽤域 隐藏规则 成员函数的隐藏 考察继承【作⽤…...
地级市能源消耗数据(2006至2021)含原始数据、计算过程、计算结果-最新出炉
能源消耗数据分析-2006-2021年地级市能源消耗数据(原始数据计算过程结果) 下载链接-点它👉👉👉:https://download.csdn.net/download/qq_67479387/89911272 全国能源消耗概况 2021年,我国单位…...
MySQL技巧之跨服务器数据查询:基础篇-A数据库与B数据库查询合并
MySQL技巧之跨服务器数据查询:基础篇-A数据库与B数据库查询合并 上一篇已经描述:借用微软的SQL Server ODBC 即可实现MySQL跨服务器间的数据查询。 而且还介绍了如何获得一个在MS SQL Server 可以连接指定实例的MySQL数据库的链接名: MY_ODBC_MYSQL 以…...
AutoSAR CP DoIP规范导读
主要功能和用途 诊断通信协议实现 遵循标准:遵循ISO 13400 - 2标准,实现了诊断通信在IP网络上的传输协议和网络层服务,包括数据封装、传输、路由等功能。 多种消息支持 车辆识别与公告:能够进行车辆识别请求和响应,…...
Window下PHP安装最新sg11(php5.3-php8.3)
链接: https://pan.baidu.com/s/10yyqTJdwH_oQJnQtWcwIeA 提取码: qz8y 复制这段内容后打开百度网盘手机App,操作更方便哦 (链接失效联系L88467872) 1.下载后解压文件,将对应版本的ixed.xx.win文件放进php对应的ext目录下,如图所示 2.修改ph…...
2024华为OD机试真题---中文分词模拟器
华为OD机试中的中文分词模拟器题目,通常要求考生对给定的不包含空格的字符串进行精确分词。这个字符串仅包含英文小写字母及英文标点符号(如逗号、分号、句号等),同时会提供一个词库作为分词依据。以下是对这类题目的详细解析 一…...
Kubernetes网络揭秘:从DNS到核心概念,一站式综述
文章目录 一.overlay vs underlayL2 underlayL3 underlay 二、calico vs flannel2.1 calico架构2.2 flannel架构 三、iptables四、Vxlan五、kubernetes网络架构综述六、DNS七、Kubernetes域名解析策略 一.overlay vs underlay overlay网络是在传统网络上虚拟出一个虚拟网络&am…...
【入坑系列】TiDB 强制索引在不同库下不生效问题
文章目录 背景SQL 优化情况线上SQL运行情况分析怀疑1:执行计划绑定问题?尝试:SHOW WARNINGS 查看警告探索 TiDB 的 USE_INDEX 写法Hint 不生效问题排查解决参考背景 项目中使用 TiDB 数据库,并对 SQL 进行优化了,添加了强制索引。 UAT 环境已经生效,但 PROD 环境强制索…...
Linux简单的操作
ls ls 查看当前目录 ll 查看详细内容 ls -a 查看所有的内容 ls --help 查看方法文档 pwd pwd 查看当前路径 cd cd 转路径 cd .. 转上一级路径 cd 名 转换路径 …...
Neo4j 集群管理:原理、技术与最佳实践深度解析
Neo4j 的集群技术是其企业级高可用性、可扩展性和容错能力的核心。通过深入分析官方文档,本文将系统阐述其集群管理的核心原理、关键技术、实用技巧和行业最佳实践。 Neo4j 的 Causal Clustering 架构提供了一个强大而灵活的基石,用于构建高可用、可扩展且一致的图数据库服务…...
css的定位(position)详解:相对定位 绝对定位 固定定位
在 CSS 中,元素的定位通过 position 属性控制,共有 5 种定位模式:static(静态定位)、relative(相对定位)、absolute(绝对定位)、fixed(固定定位)和…...
算法笔记2
1.字符串拼接最好用StringBuilder,不用String 2.创建List<>类型的数组并创建内存 List arr[] new ArrayList[26]; Arrays.setAll(arr, i -> new ArrayList<>()); 3.去掉首尾空格...
华硕a豆14 Air香氛版,美学与科技的馨香融合
在快节奏的现代生活中,我们渴望一个能激发创想、愉悦感官的工作与生活伙伴,它不仅是冰冷的科技工具,更能触动我们内心深处的细腻情感。正是在这样的期许下,华硕a豆14 Air香氛版翩然而至,它以一种前所未有的方式&#x…...
基于TurtleBot3在Gazebo地图实现机器人远程控制
1. TurtleBot3环境配置 # 下载TurtleBot3核心包 mkdir -p ~/catkin_ws/src cd ~/catkin_ws/src git clone -b noetic-devel https://github.com/ROBOTIS-GIT/turtlebot3.git git clone -b noetic https://github.com/ROBOTIS-GIT/turtlebot3_msgs.git git clone -b noetic-dev…...
宇树科技,改名了!
提到国内具身智能和机器人领域的代表企业,那宇树科技(Unitree)必须名列其榜。 最近,宇树科技的一项新变动消息在业界引发了不少关注和讨论,即: 宇树向其合作伙伴发布了一封公司名称变更函称,因…...
NPOI Excel用OLE对象的形式插入文件附件以及插入图片
static void Main(string[] args) {XlsWithObjData();Console.WriteLine("输出完成"); }static void XlsWithObjData() {// 创建工作簿和单元格,只有HSSFWorkbook,XSSFWorkbook不可以HSSFWorkbook workbook new HSSFWorkbook();HSSFSheet sheet (HSSFSheet)workboo…...
PostgreSQL——环境搭建
一、Linux # 安装 PostgreSQL 15 仓库 sudo dnf install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-$(rpm -E %{rhel})-x86_64/pgdg-redhat-repo-latest.noarch.rpm# 安装之前先确认是否已经存在PostgreSQL rpm -qa | grep postgres# 如果存在࿰…...
