开源shell脚本系列-服务器自动互信2.0

简介: 开源shell脚本系列-服务器自动互信2.0

640.jpg


上次写了个互信脚本,有不下10个小伙伴在后台询问是否可以做到双向互信。

波哥想了一下确实双向互信这个场景是存在的,也是普遍的。那么就顺手优化了一下这个脚本。


增加是否双向互信的参数DOUBLE_AUTH=1

默认是单向互信。


增加成功失败的统计参数。

增加互信登录超时时间的参数。


脚本如下:


#!/bin/bash
# 获取IP列表和用户名密码
SERVERS=("192.168.1.1" "192.168.1.2" "192.168.1.3")
USERNAME="username"
PASSWORD="password"
# 默认单向互信,如果DOUBLE_AUTH为1则为双向互信
DOUBLE_AUTH=1
# 互信超时时间为30秒
TIMEOUT=30
# 记录成功和失败的IP地址
SUCCESS_IP=()
FAIL_IP=()
# 循环遍历IP列表
for SERVER in ${SERVERS[@]}; do
    # 生成本地ssh key
    ssh-keygen -t rsa -N "" -f ~/.ssh/id_rsa > /dev/null
    # 复制本地公钥到远程服务器
    sshpass -p "$PASSWORD" ssh-copy-id -o ConnectTimeout=$TIMEOUT $USERNAME@$SERVER > /dev/null
    # 双向互信,需要将远程服务器的公钥复制到本地
    if [ $DOUBLE_AUTH -eq 2 ]; then
        sshpass -p "$PASSWORD" ssh -o ConnectTimeout=$TIMEOUT $USERNAME@$SERVER "ssh-keygen -t rsa -N \"\" -f ~/.ssh/id_rsa > /dev/null && echo 'Hostkey has been created.'"
        sshpass -p "$PASSWORD" ssh -o ConnectTimeout=$TIMEOUT $USERNAME@$SERVER "cat ~/.ssh/id_rsa.pub" | sshpass -p "$PASSWORD" ssh-copy-id -o ConnectTimeout=$TIMEOUT $USERNAME@$SERVER > /dev/null
    fi
    # 检查互信是否成功
    if [ $? -eq 0 ]; then
        SUCCESS_IP+=($SERVER)
    else
        FAIL_IP+=($SERVER)
    fi
done
# 记录成功和失败的IP地址到日志文件
echo "$(date '+%Y-%m-%d %H:%M:%S') [INFO] Successfully established trust with the following servers: ${SUCCESS_IP[*]}" >> trust.log
echo "$(date '+%Y-%m-%d %H:%M:%S') [INFO] Failed to establish trust with the following servers: ${FAIL_IP[*]}" >> trust.log
echo "$(date '+%Y-%m-%d %H:%M:%S') [INFO] Total success: ${#SUCCESS_IP[@]}, total fail: ${#FAIL_IP[@]}" >> trust.log


觉的不错,别忘了帮波哥三连哦!


相关文章
|
1月前
|
运维 Java Linux
【运维基础知识】Linux服务器下手写启停Java程序脚本start.sh stop.sh及详细说明
### 启动Java程序脚本 `start.sh` 此脚本用于启动一个Java程序,设置JVM字符集为GBK,最大堆内存为3000M,并将程序的日志输出到`output.log`文件中,同时在后台运行。 ### 停止Java程序脚本 `stop.sh` 此脚本用于停止指定名称的服务(如`QuoteServer`),通过查找并终止该服务的Java进程,输出操作结果以确认是否成功。
40 1
|
1月前
|
分布式计算 Hadoop Shell
Hadoop-35 HBase 集群配置和启动 3节点云服务器 集群效果测试 Shell测试
Hadoop-35 HBase 集群配置和启动 3节点云服务器 集群效果测试 Shell测试
71 4
|
1月前
|
分布式计算 Hadoop Shell
Hadoop-36 HBase 3节点云服务器集群 HBase Shell 增删改查 全程多图详细 列族 row key value filter
Hadoop-36 HBase 3节点云服务器集群 HBase Shell 增删改查 全程多图详细 列族 row key value filter
58 3
|
3月前
|
运维 监控 数据库
自动化运维:使用Python脚本实现服务器监控
【8月更文挑战第31天】在这篇文章中,我们将探索如何利用Python编写简单的脚本来实现对服务器的基本监控。通过学习和应用这些技术,你可以快速检测服务器的状态,包括CPU使用率、内存占用和磁盘空间等关键指标。这不仅有助于及时发现问题,还能提升运维效率。文章将逐步引导你理解监控的重要性,并展示如何从零开始构建自己的监控工具。
|
3月前
|
监控 数据挖掘 Linux
Linux服务器PBS任务队列作业提交脚本的使用方法
【8月更文挑战第21天】在Linux服务器环境中,PBS任务队列能高效管理及调度计算任务。首先需理解基本概念:作业是在服务器上执行的任务;队列则是等待执行任务的列表,具有不同的资源限制与优先级;节点指分配给作业的计算资源。
540 4
|
3月前
|
存储 运维 监控
自动化运维:使用Python脚本进行服务器监控
【8月更文挑战第31天】在数字化时代,服务器的稳定运行对于企业至关重要。本文将介绍如何使用Python编写一个简单的服务器监控脚本,帮助运维人员及时发现并解决潜在问题。我们将从基础的服务器资源监控开始,逐步深入到日志分析与报警机制的实现。通过实际代码示例和操作步骤,使读者能够快速掌握自动化监控的技能,提升工作效率。
|
8天前
|
人工智能 弹性计算 编解码
阿里云GPU云服务器性能、应用场景及收费标准和活动价格参考
GPU云服务器作为阿里云提供的一种高性能计算服务,通过结合GPU与CPU的计算能力,为用户在人工智能、高性能计算等领域提供了强大的支持。其具备覆盖范围广、超强计算能力、网络性能出色等优势,且计费方式灵活多样,能够满足不同用户的需求。目前用户购买阿里云gpu云服务器gn5 规格族(P100-16G)、gn6i 规格族(T4-16G)、gn6v 规格族(V100-16G)有优惠,本文为大家详细介绍阿里云gpu云服务器的相关性能及收费标准与最新活动价格情况,以供参考和选择。
|
13天前
|
机器学习/深度学习 人工智能 弹性计算
什么是阿里云GPU云服务器?GPU服务器优势、使用和租赁费用整理
阿里云GPU云服务器提供强大的GPU算力,适用于深度学习、科学计算、图形可视化和视频处理等多种场景。作为亚太领先的云服务提供商,阿里云的GPU云服务器具备灵活的资源配置、高安全性和易用性,支持多种计费模式,帮助企业高效应对计算密集型任务。
|
15天前
|
存储 分布式计算 固态存储
阿里云2核16G、4核32G、8核64G配置云服务器租用收费标准与活动价格参考
2核16G、8核64G、4核32G配置的云服务器处理器与内存比为1:8,这种配比的云服务器一般适用于数据分析与挖掘,Hadoop、Spark集群和数据库,缓存等内存密集型场景,因此,多为企业级用户选择。目前2核16G配置按量收费最低收费标准为0.54元/小时,按月租用标准收费标准为260.44元/1个月。4核32G配置的阿里云服务器按量收费标准最低为1.08元/小时,按月租用标准收费标准为520.88元/1个月。8核64G配置的阿里云服务器按量收费标准最低为2.17元/小时,按月租用标准收费标准为1041.77元/1个月。本文介绍这些配置的最新租用收费标准与活动价格情况,以供参考。
|
13天前
|
机器学习/深度学习 人工智能 弹性计算
阿里云GPU服务器全解析_GPU价格收费标准_GPU优势和使用说明
阿里云GPU云服务器提供强大的GPU算力,适用于深度学习、科学计算、图形可视化和视频处理等场景。作为亚太领先的云服务商,阿里云GPU云服务器具备高灵活性、易用性、容灾备份、安全性和成本效益,支持多种实例规格,满足不同业务需求。
下一篇
无影云桌面