ITPub博客

首页 > 数据库 > 数据库开发技术 > Linux主机双向互信脚本

Linux主机双向互信脚本

原创 数据库开发技术 作者:运维book思议 时间:2023-05-17 21:05:00 0 删除 编辑

先放个链接,万一有人关注呢

优质文章推荐

↓ ↓ ↓ ↓ ↓

Linux系统初始化脚本

能够监控100台服务器的磁盘利用率的脚本——16行代码实现

Linux系统初始化脚本之二

Linux系统巡检脚本——快速获取当前系统信息

Linux远程执行脚本——Python运维脚本

哪个Linux发行版会成为CentOS的平替?

引言

在现代的IT环境中,通常会有多台Linux主机构成的集群或分布式系统。在这些主机之间进行管理和协作时,经常需要进行SSH连接。为了简化管理和提高效率,配置主机之间的双向互信是一项重要的任务。

应用场景

配置Linux主机双向互信的应用场景广泛,以下是一些常见的应用场景:
  1. 自动化运维任务:在自动化运维任务中,经常需要通过SSH连接到多台主机并执行命令或脚本。配置双向互信可以使运维工程师在执行任务时免去输入密码的步骤,提高效率。

  2. 集群管理:在构建集群环境时,主机之间需要进行协调和通信。通过配置双向互信,可以方便地在集群中的各个节点之间进行SSH连接和操作。

  3. 分布式系统:分布式系统通常由多个节点组成,节点之间需要进行数据同步、协调和通信。通过配置双向互信,可以简化节点之间的认证过程,提高系统的可靠性和稳定性。

  4. 自动化部署:在自动化部署过程中,常常需要在多台主机上执行相同的部署脚本或命令。通过配置双向互信,可以方便地在各个主机之间进行部署操作,提高部署效率和一致性。

脚本实现
#!/bin/bash
# 主机列表hosts=( "user1@host1" "user2@host2" "user3@host3")
# 密码password="password"
# 生成SSH密钥对generate_ssh_key() { local host=$1 local key_file=~/.ssh/id_rsa_$host
if [ ! -f $key_file ]; then ssh-keygen -t rsa -f $key_file -N "" fi}
# 复制公钥到其他主机copy_public_key() { local host=$1 local key_file=~/.ssh/id_rsa_$host
for target_host in "${hosts[@]}"; do if [[ $target_host != $host ]]; then sshpass -p "$password" ssh-copy-id -i $key_file.pub $target_host fi done}
# 设置双向互信setup_ssh_trust() { local host=$1 local key_file=~/.ssh/id_rsa_$host
for target_host in "${hosts[@]}"; do if [[ $target_host != $host ]]; then sshpass -p "$password" ssh -i $key_file $target_host "mkdir -p ~/.ssh && grep -qxF '$(cat $key_file.pub)' ~/.ssh/authorized_keys || echo '$(cat $key_file.pub)' >> ~/.ssh/authorized_keys" fi done}
# 并行执行函数parallel_execute() { local func=$1
for host in "${hosts[@]}"; do $func "$host" & done wait}
# 并行生成SSH密钥对parallel_execute generate_ssh_key
# 并行复制公钥到其他主机parallel_execute copy_public_key
# 并行设置双向互信parallel_execute setup_ssh_trust
echo "双向互信设置完成"

请确保在执行脚本之前,你已经正确设置了主机列表和密码,并且具备执行脚本的权限。另外,建议在执行脚本之前,确保主机之间可以正常通信,并且已经安装了sshpass和parallel-ssh工具,以便脚本顺利执行。

结束!如有不足之处,欢迎指正!

我们的组织在这里:

欢迎新的小伙伴加入!在这里,我们鼓励大家积极参与群内讨论和交流,分享自己的见解和经验,一起学习和成长。同时,也欢迎大家提出问题和建议,让我们不断改进和完善这个平台。




原文作者:运维book思议;如有侵权,请联系管理员删除。

请登录后发表评论 登录
全部评论

注册时间:2022-09-24

  • 博文量
    333
  • 访问量
    215233