SSH互信一键配置
程小虎2025-12-23 21:49:32
🔑 SSH互信一键配置
📌 文档信息
- 作者: 程小虎
- 创建时间: 2025-12-30
- 最近修订: 2025-12-30
- 版本号: v1.0
✨ 介绍
- 本教程使用脚本安装,可实现一键安装,整个安装过程只需要一条命令即可
- 本教程采用离线方式安装,可在内网环境中部署
✅ 支持的系统
目前脚本实测支持以下Linux发行版
| Linux系统发行版 | 是否支持 |
|---|---|
| Redhat、CentOS、OracleLinux、RockyLinux、AlmaLinux >= 7 全系 | ✅ |
| OpenEuler >= 20 全系 | ✅ |
| Ubuntu >= 20 全系 | ✅ |
| AnolisOS >= 7 全系 | ✅ |
| 统信 UOS V20 1070a/1070e | ✅ |
| 银河麒麟 Kylin >= V10 全系 | ✅ |
| 中标麒麟 NeoKylin V7 全系 | ✅ |
| 中科方德 NFSCNS 4.0 全系 | ✅ |
| 磐宁 NingOS V3.0 全系 | ✅ |
📄 前置条件说明
在配置SSH互信免密之前,需要满足一些前置条件,否则可能会导致配置SSH互信失败
- 防止因为系统版本差异带来不可预测的问题
- 用于配置SSH互信的用户的密码必须相同
- root用户可以为所有用户配置
- 当前用户必须是root用户或配置了sudo免密的用户
🛠️ 安装过程
📤 上传安装包
安装过程中需要使用root用户进行安装,若系统当前用户为非root用户(必须是配置了sudo免密),则先执行下面命令切换为root用户
sudo su - root
执行下面命令,创建文件上传目录
mkdir /soft
将安装包对应的文件夹 [ ],上传至/soft 路径下,若一开始登录的时非root用户,可以先上传到 /tmp 路径下,然后移动到 /soft 下
- sshpass:sshpass安装包
- ssh_trust.sh:一键安装脚本
[root@huge ~]# cd /soft/ssh_trust/
[root@huge ssh_trust]# ll
总用量 24
drwxr-xr-x. 2 root root 75 12月 30 21:33 sshpass
-rw-r--r--. 1 root root 22862 12月 30 21:33 ssh_trust.sh
📄 脚本参数说明
执行 bash ssh_trust.sh -h 命令,可以查看脚本参数说明
[root@huge ssh_trust]# bash ssh_trust.sh -h
█████████ █████████ █████ █████ ███████████ ███████████ █████ █████ █████████ ███████████
███░░░░░███ ███░░░░░███░░███ ░░███ ░█░░░███░░░█░░███░░░░░███ ░░███ ░░███ ███░░░░░███░█░░░███░░░█
░███ ░░░ ░███ ░░░ ░███ ░███ ░ ░███ ░ ░███ ░███ ░███ ░███ ░███ ░░░ ░ ░███ ░
░░█████████ ░░█████████ ░███████████ ░███ ░██████████ ░███ ░███ ░░█████████ ░███
░░░░░░░░███ ░░░░░░░░███ ░███░░░░░███ ░███ ░███░░░░░███ ░███ ░███ ░░░░░░░░███ ░███
███ ░███ ███ ░███ ░███ ░███ ░███ ░███ ░███ ░███ ░███ ███ ░███ ░███
░░█████████ ░░█████████ █████ █████ █████ █████ █████ ░░████████ ░░█████████ █████
░░░░░░░░░ ░░░░░░░░░ ░░░░░ ░░░░░ ░░░░░ ░░░░░ ░░░░░ ░░░░░░░░ ░░░░░░░░░ ░░░░░
注意:本脚本支持重复运行
用法: ssh_trust.sh [选项] 对象 { 命令 | help }
-ou 操作用户(用来配置SSH授权操作的用户,可以不为当前登录用户)
-oup 操作用户密码(实际的用户密码)
-tu 目标用户(需要配置SSH互信的用户)
-tp 目标IP(需要配置SSH互信IP列表,"192.168.80.1,192.168.80.2" 或 "192.168.80.{1..2}") 这两种格式都支持
-p [非必须]SSH端口号,不传则默认为22
命令示例:
bash ssh_trust.sh \
-ou root `# 操作用户`\
-oup 'admin' `# 操作用户密码`\
-tu tom `# 目标用户(需要配置SSH互信的用户)`\
-tp "192.168.80.{11..12}" `# 目标用户(需要配置SSH互信的用户)`
📄 安装执行
修改参数示例中的内容自己设置的,然后执行脚本安装即可
- :操作用户权限必须大于等于目标用户权限
[root@huge ssh_trust]# bash ssh_trust.sh \
> -ou root `# 操作用户`\
> -oup 'admin' `# 操作用户密码`\
> -tu root `# 目标用户(需要配置SSH互信的用户)`\
> -tp "192.168.80.{19..23}" `# 目标用户(需要配置SSH互信的用户)`
█████████ █████████ █████ █████ ███████████ ███████████ █████ █████ █████████ ███████████
███░░░░░███ ███░░░░░███░░███ ░░███ ░█░░░███░░░█░░███░░░░░███ ░░███ ░░███ ███░░░░░███░█░░░███░░░█
░███ ░░░ ░███ ░░░ ░███ ░███ ░ ░███ ░ ░███ ░███ ░███ ░███ ░███ ░░░ ░ ░███ ░
░░█████████ ░░█████████ ░███████████ ░███ ░██████████ ░███ ░███ ░░█████████ ░███
░░░░░░░░███ ░░░░░░░░███ ░███░░░░░███ ░███ ░███░░░░░███ ░███ ░███ ░░░░░░░░███ ░███
███ ░███ ███ ░███ ░███ ░███ ░███ ░███ ░███ ░███ ░███ ███ ░███ ░███
░░█████████ ░░█████████ █████ █████ █████ █████ █████ ░░████████ ░░█████████ █████
░░░░░░░░░ ░░░░░░░░░ ░░░░░ ░░░░░ ░░░░░ ░░░░░ ░░░░░ ░░░░░░░░ ░░░░░░░░░ ░░░░░
注意:本脚本支持重复运行
正在检测主机 192.168.80.19 是否可达......
主机 192.168.80.19 可达
正在检测主机 192.168.80.20 是否可达......
主机 192.168.80.20 可达
正在检测主机 192.168.80.21 是否可达......
主机 192.168.80.21 可达
正在检测主机 192.168.80.22 是否可达......
主机 192.168.80.22 可达
正在检测主机 192.168.80.23 是否可达......
主机 192.168.80.23 可达
开始为用户 [ root ] 配置SSH互信......
主机 192.168.80.19 配置成功......
主机 192.168.80.20 配置成功......
主机 192.168.80.21 配置成功......
主机 192.168.80.22 配置成功......
主机 192.168.80.23 配置成功......
所有主机SSH互信配置成功,请切换到 [ root ] 用户,执行 ssh root@<IP> 进行验证
📄 SSH互信验证
我们使用当前节点去连接任一其他节点,可以看到直接连接,不需要输入密码
[root@huge ssh_trust]# ssh 192.168.80.20
Last login: Fri Oct 24 11:44:55 2025 from 192.168.80.2
