自动化运维神器:SSH 一键互信脚本,免费速领!
大家好,这里是 DBA 学习之路,专注于提升数据库运维效率。
@TOC
前言
大家好,我又双叒叕来送福利了,这次是 SSH 一键互信脚本,贼拉好用~
关注公众号:DBA学习之路,聊天框回复:
ssh_trust下载脚本。

在 Linux 主机上进行集群部署或者批量运维过程中,很多情况下都需要配置多台主机间的 SSH 免密登录(互信),传统的手动配置方式需要重复执行多个操作:生成 SSH 密钥对、分发公钥到各个节点、确认主机指纹等,不仅耗时费力,还容易因人为操作失误导致配置错误。
随着运维规模的扩大,这种重复性工作的痛点愈发明显。为了解决这个问题,我开发了一个 SSH 一键互信脚本 ssh_trust.sh,能够自动化完成整个配置过程,大大提升运维效率。
脚本介绍
本脚本 ssh_trust.sh 是一个全自动化的 SSH 互信配置工具,支持一键自动化配置多台 Linux 主机之间的 SSH 免密登录(互信),可以指定当前用户或其他用户(需要在 root 下执行)进行批量操作,适用于集群部署、批量管理等场景。
- 批量配置:一次性处理多台主机的互信设置
- 用户灵活性:支持当前用户或指定用户的互信配置
- 智能检测:自动检查互信状态,避免重复配置
- 依赖管理:自动安装必需的
expect工具
💡 脚本具备以下智能化功能:
- 防重复执行:自动检测已有互信配置,跳过已完成的主机
- 实时进度反馈:动态显示配置进度和状态信息
- 完善错误处理:针对网络异常或认证失败提供清晰的错误提示
参数详解
脚本采用命令行参数方式运行:
| 参数 | 必填 | 说明 |
|---|---|---|
-p |
✅ | 目标主机的 SSH 登录密码(所有主机需密码一致) |
-i |
✅ | 目标主机 IP 列表,用逗号分隔(如 "192.168.1.1,192.168.1.2") |
-u |
❌ | 指定目标用户(默认使用当前用户) |
运行 ./ssh_trust.sh -h 可查看详细使用帮助:

使用指南
在使用脚本前,请确保满足以下条件:
- 密码统一性:所有目标主机的指定用户 SSH 密码必须相同;
- 网络连通性:执行脚本的主机能够通过 SSH 访问所有目标 IP;
- 权限管理:
- 配置当前用户互信:使用当前用户身份执行即可;
- 配置其他用户互信:必须使用 root 权限执行;
- 系统依赖:脚本会自动检查并安装
expect工具(需要 yum 可用,仅限 root 用户,其他用户需要提前安装)
基础命令格式
1 | ./ssh_trust.sh -u "用户名" -p "目标主机密码" -i "IP1,IP2,IP3,..." |
配置指定用户
需要在 root 用户下执行才能指定其他用户执行:
1 | ./ssh_trust.sh -u oracle -p 'oracle' -i "10.168.1.110,10.168.1.111" |
如果在非 root 用户指定其他用户执行,会报错:

在 root 用户下则可以正常使用:

重复执行,有互信校验,如果已经互信完成,则不再执行互信:

写在最后
SSH 一键互信脚本通过自动化手段解决了 Linux 集群部署中的重复性配置工作,具有以下显著优势:
- 效率提升:从手动配置几十分钟缩短到脚本执行几秒钟;
- 错误减少:自动化操作避免了人为配置错误;
- 操作简化:一条命令完成多台主机的互信配置;
- 安全可靠:内置权限检查和重复执行保护机制;
无论是 DevOps 工程师进行集群部署,还是系统管理员进行批量运维,这个脚本都能显著提升工作效率。在 AI 技术的加持下,类似的运维自动化工具将越来越普及,帮助我们告别重复性的手工操作。
💡 温馨提示:首次使用建议在非生产环境中进行充分测试,确认脚本行为符合预期后再应用到生产环境。