当前位置: 首页 > news >正文

SSH 一键互信配置脚本 V2.0 使用指南

大家好,这里是 DBA 学习之路,专注于提升数据库运维效率。

目录

  • 前言
  • 本次升级亮点
  • 使用场景
  • 脚本使用
    • 参数详解
    • 使用案例
      • 案例 1:Oracle RAC 集群互信配置
      • 案例 2:非标准 SSH 端口配置
      • 案例 3:Kubernetes 集群节点互信
      • 案例 4:调试模式排查问题
      • 案例 5:混合环境批量配置
    • 配置文件使用
      • 配置文件格式
      • 配置文件优势
    • 常见问题和解决方案
      • 1. 脚本执行后没有输出就退出
      • 2. "用户不存在" 错误
      • 3. "端口不可达" 错误
      • 4. "连接超时" 错误
      • 5. expect 工具未安装
    • 最佳实践建议
      • 1. 安全考虑
      • 2. 操作规范
      • 3. 环境准备
      • 4. 监控验证
    • 故障排查流程
      • 1. 基础检查
      • 2. 权限检查
      • 3. 调试模式
      • 4. 手动验证
    • 总结

前言

🔥 热门脚本再次升级!用户反馈驱动的完美进化,还记得前几天分享的那个 SSH 一键互信脚本吗?

自动化运维神器:SSH 一键互信脚本,限免速领!

没想到这个"小工具"竟然还挺受欢迎 🎉!

数据说话:

  • 📊 1000+ 人下载使用;
  • 💬 收到了数十条宝贵建议;
  • ⭐ 在各大技术群被疯狂转发;

但作为一个有追求的程序员,怎么能满足于现状呢?😏 用户的声音,我听到了!

  • 👨‍💻 运维老王:“兄弟,我们服务器都是 2222 端口,能支持自定义端口吗?”
  • 👩‍💻 DBA 小李:“我们有 50 台 Oracle 节点,写那么多 IP 参数手都酸了…”
  • 🧑‍💻 架构师张三:“能不能加个调试模式?有时候失败了不知道哪里出问题。”

于是,SSH 互信脚本 2.0 诞生了! 🚀

获取脚本请关注公众号:DBA 学习之路,在聊天框回复:ssh_trust2.0

本次升级亮点

  1. ✨ 自定义端口支持 - 告别 22 端口限制;
  2. ✨ 配置文件模式 - 管理几百台主机也不怕;
  3. ✨ 调试模式 - 问题排查 so easy;
  4. ✨ 智能检查 - 已配置的主机自动跳过;
  5. ✨ 完美兼容 - 老用户无缝升级;

这不仅仅是一次功能升级,更是一次用户体验的革命!

从此,SSH 互信配置变得如此简单:

  • 🎯 一行命令,搞定集群互信;
  • 🎯 支持任意端口,适配各种环境;
  • 🎯 配置文件管理,告别参数地狱;
  • 🎯 调试模式加持,故障排查无忧;

准备好了吗?让我们一起探索这个"进化版"的 SSH 互信神器! 🔥

使用场景

这里我列了一些互信脚本的使用场景:

  1. 数据库集群部署:在 Oracle RAC、MySQL 集群等数据库集群部署时,需要配置集群节点间的 SSH 互信。
  2. 容器化环境:Docker Swarm、Kubernetes 集群节点间需要 SSH 互信进行管理。
  3. 自动化运维:Ansible、Puppet 等自动化工具需要 SSH 免密访问被管理主机。
  4. 负载均衡集群:Nginx、HAProxy 等负载均衡集群的配置同步需要 SSH 互信。
  5. 备份同步:定期备份脚本需要 SSH 免密访问远程存储服务器。

脚本使用

参数详解

为了方便大家使用脚本,我设置了很多参数:

查看参数介绍:

使用案例

案例 1:Oracle RAC 集群互信配置

场景:配置 3 节点 Oracle RAC 集群,为 oracle 用户建立 SSH 互信

# 方式 1:使用命令行指定 IP
./ssh_trust.sh -u oracle -p oracle123 -i "192.168.1.10,192.168.1.11,192.168.1.12"# 方式 2:使用配置文件
cat<<-EOF>oracle_hosts.conf
192.168.1.10
192.168.1.11
192.168.1.12
EOF./ssh_trust.sh -u oracle -p oracle123 -c oracle_hosts.conf

案例 2:非标准 SSH 端口配置

场景:服务器使用 2222 端口提供 SSH 服务

./ssh_trust.sh -u root -p admin123 -P 2222 -i "10.168.1.100,10.168.1.101"

案例 3:Kubernetes 集群节点互信

场景:为 Kubernetes 集群的 5 个节点配置 root 用户互信

创建配置文件 k8s_nodes.conf

# Kubernetes 主节点
10.0.1.10
10.0.1.11
10.0.1.12# Kubernetes 工作节点
10.0.1.20
10.0.1.21

执行配置:

./ssh_trust.sh -p k8s_admin_pwd -c k8s_nodes.conf

案例 4:调试模式排查问题

场景:配置过程中遇到问题,需要详细的调试信息

./ssh_trust.sh -d -u mysql -p mysql123 -i "172.16.1.10,172.16.1.11"

执行示例如下:

案例 5:混合环境批量配置

场景:在已经部分配置互信的环境中,只配置未完成的主机

./ssh_trust.sh -u appuser -p app123 -i "192.168.1.5,192.168.1.6,192.168.1.7,192.168.1.8"

脚本会智能跳过已配置的主机:

[INFO] 检查现有互信配置...
[SUCCESS] 192.168.1.5: 已配置互信
[INFO] 192.168.1.6: 需要配置互信
[SUCCESS] 192.168.1.7: 已配置互信
[INFO] 192.168.1.8: 需要配置互信
[INFO] 需要配置互信的主机: 192.168.1.6 192.168.1.8

配置文件使用

配置文件格式

# 这是注释行,会被忽略
192.168.1.10
192.168.1.11# 可以添加说明注释
# 生产环境服务器
192.168.1.20
192.168.1.21# 测试环境服务器
192.168.1.30

配置文件优势

  • 可重用:配置文件可以重复使用,便于标准化;
  • 可读性:支持注释,便于团队理解和维护;
  • 版本控制:可以纳入 Git 等版本控制系统;
  • 批量管理:便于管理大量主机 IP;

常见问题和解决方案

1. 脚本执行后没有输出就退出

原因:可能是 SSH 连接卡住或权限问题

解决:使用调试模式查看详细信息

./ssh_trust.sh -d -u username -p password -i "ip_list"

2. “用户不存在” 错误

原因:目标用户在当前系统不存在

解决:确保要配置互信的用户在当前系统存在

# 检查用户是否存在
id username# 如果不存在,创建用户
useradd username

3. “端口不可达” 错误

原因:目标主机 SSH 服务未启动或端口配置错误

解决

# 检查SSH服务状态
systemctl status sshd# 检查SSH端口配置
ss -tlnp | grep :22# 如果使用非标准端口
./ssh_trust.sh -P 2222 -p password -i "ip_list"

4. “连接超时” 错误

原因:网络不通或防火墙阻止

解决

# 检查网络连通性
ping target_ip# 检查SSH端口连通性
telnet target_ip 22# 检查防火墙规则
iptables -L | grep 22

5. expect 工具未安装

原因:系统缺少 expect 工具

解决:脚本会自动安装,如果失败可手动安装

# CentOS/RHEL
yum install -y expect# Ubuntu/Debian
apt-get install -y expect

最佳实践建议

1. 安全考虑

  • 强密码:使用复杂的 SSH 密码;
  • 网络隔离:在可信网络环境中执行;
  • 及时清理:配置完成后及时删除临时文件;
  • 权限控制:合理设置 SSH 密钥文件权限;

2. 操作规范

  • 测试先行:在测试环境先验证脚本;
  • 备份重要数据:配置前备份现有 SSH 密钥;
  • 分批执行:大规模环境分批次执行;
  • 记录操作:保留执行日志以便追溯;

3. 环境准备

  • 统一用户:确保所有目标主机用户一致;
  • 网络连通:确保网络连通性良好;
  • 时间同步:保持各主机时间同步;
  • 资源充足:确保系统资源充足;

4. 监控验证

  • 定期检查:定期验证 SSH 互信状态;
  • 日志监控:监控 SSH 访问日志;
  • 自动化测试:集成到自动化测试流程;
  • 文档更新:及时更新配置文档;

故障排查流程

1. 基础检查

# 1. 检查网络连通性
ping target_ip# 2. 检查SSH服务
ssh -p port target_ip

2. 权限检查

# 1. 检查用户权限
id target_user# 2. 检查SSH目录权限
ls -la ~/.ssh/

3. 调试模式

# 使用调试模式获取详细信息
./ssh_trust.sh -d [其他参数]

4. 手动验证

# 手动测试SSH连接
ssh -o BatchMode=yes target_user@target_ip echo "test"

总结

SSH 一键互信配置脚本大大简化了 Linux 环境中 SSH 密钥管理的复杂性。通过智能检查、批量配置、详细日志等功能,可以高效完成各种场景下的 SSH 互信配置需求。

主要优势

  • 操作简单,一键完成复杂配置;
  • 功能完善,支持多种使用场景;
  • 错误处理完善,便于故障排查;
  • 智能检查,避免重复配置;
  • 调试友好,提供详细的执行信息;

在实际使用中,建议结合具体环境特点,制定相应的操作规范和安全策略,确保 SSH 互信配置的安全性和可维护性。

http://www.dtcms.com/a/295073.html

相关文章:

  • 卡尔曼滤波数据融合
  • AI 及开发领域动态与资源汇总(2025年7月23日)
  • 【LeetCode】算法详解#9 ---旋转图像
  • QT开发---基础介绍及环境搭建
  • STM32中SystemCoreClockUpdate函数解读
  • 双写缓冲区 Redo Log
  • 基于GitHub的Terraform自动化管理最佳实践
  • 多服务器批量发布软件
  • Linux编程:9、线程编程-互斥锁与条件变量
  • 扫地机产品的电池CQC认证遵循哪个标准?
  • 1. 一份“从 0 到 1” 的 WSL(Windows Subsystem for Linux)速查手册
  • J2EE模式---视图助手模式
  • ospf多区域
  • git的使用,推送仓库github
  • Hierarchical-Localization 安装与常见问题解决手册
  • MSTP多生成树协议
  • 【西北工业大学公开课】导引系统原理(全61讲)周军 -个人笔记版 5000字
  • 基于多种机器学习的水质污染及安全预测分析系统的设计与实现【随机森林、XGBoost、LightGBM、SMOTE、贝叶斯优化】
  • Parasoft为金融服务打造统一测试平台,提升安全、合规与交付效率
  • Shell函数
  • 无人设备遥控器之无线网络技术篇
  • Linux 一文详谈Vim编辑器的使用
  • 面试150 最大子数组和
  • C语言学习(days09)
  • useEffect
  • Java异常处理核心原理与最佳实践
  • 数据驱动未来:构建强大AI系统的基石
  • QPixmap::scaled参数说明
  • 床上肢体康复机器人的机械结构设计cad【7张】三维图+设计说明书
  • 1、黑马点评复盘(短信登录-Session或Redis实现)