开源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


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


相关文章
|
22天前
|
Java Shell Linux
使用 sh -x 进行 shell 脚本调试
使用 sh -x 进行 shell 脚本调试
34 9
使用 sh -x 进行 shell 脚本调试
|
4天前
|
网络安全
mac下通过ssh脚本实现免账号密码连接运服务器
mac下通过ssh脚本实现免账号密码连接运服务器
15 3
|
3天前
|
网络协议 安全 Unix
6! 用Python脚本演示TCP 服务器与客户端通信过程!
6! 用Python脚本演示TCP 服务器与客户端通信过程!
|
3天前
|
监控 关系型数据库 MySQL
优秀的网络工程师,早就偷偷收藏了这9 个实用 Shell 脚本!
优秀的网络工程师,早就偷偷收藏了这9 个实用 Shell 脚本!
|
5天前
|
监控 Linux Shell
"揭秘!一键掌控Linux服务器健康的秘密武器——超实用系统检查脚本,让你的服务器稳如老狗,告别宕机烦恼!"
【8月更文挑战第14天】服务器宕机或资源耗尽会严重影响业务。为此,你需要一个Linux系统检查脚本来守护服务器健康。它可以自动检测潜在问题如磁盘满载、内存泄漏等,避免服务中断。脚本应包括磁盘空间、内存/CPU使用、系统时间准确性、关键服务状态及系统日志分析等检查项。通过编写并定期运行这样的脚本,可以显著提高服务器的稳定性和可靠性。
17 1
|
12天前
|
存储 Shell 应用服务中间件
[ansible]wget批量调用shell脚本
[ansible]wget批量调用shell脚本
|
18天前
|
运维 监控 网络安全
自动化运维:使用Python脚本实现服务器批量管理
【8月更文挑战第2天】在现代IT运维领域,效率和准确性是衡量工作质量的关键指标。手动管理大量服务器不仅耗时且容易出错,因此自动化运维工具的开发变得至关重要。本文将介绍如何利用Python编写一个简单的自动化脚本,实现对多台服务器的批量管理,包括自动更新、配置同步以及日志收集等功能。通过实际案例展示,我们能够看到自动化运维如何提升工作效率并减少人为错误。
|
15天前
|
运维 监控 Shell
掌握100个开箱即用的Shell脚本~(附PDF)
Shell脚本是实现Linux系统管理及自动化运维所必备的重要工具。许多其它岗位的小伙伴也经常使用Shell脚本来实现某项需求。 今天分享《100个shell脚本案例》,共有55页,支持文字搜索定位,代码清晰可复制。
|
23天前
|
Shell 测试技术 Linux
Shell 脚本循环遍历日志文件中的值进行求和并计算平均值,最大值和最小值
Shell 脚本循环遍历日志文件中的值进行求和并计算平均值,最大值和最小值
29 3
|
7天前
|
Shell Linux Perl
Shell——如何拿到服务器IP地址
Shell——如何拿到服务器IP地址
21 0