虚拟机之间配置免密登录(Centos)

环境:三台虚拟机node1 node2 node3

确保三台虚拟机的/etc/hosts文件的配置都有有IP与名称的对应,如下:

步骤 1:在所有节点生成 SSH 密钥对

分别在 node1、node2、node3 上执行以下命令,生成无密码的 RSA 密钥对(全程按回车即可,不要输入额外密码):

bash 复制代码
ssh-keygen -t rsa -P "" -f ~/.ssh/id_rsa

执行后会在 ~/.ssh/ 目录下生成两个文件:
id_rsa:私钥,仅保留在当前节点,不可外泄
id_rsa.pub:公钥,需分发到其他所有节点。

步骤 2:合并所有公钥到一个授权文件

推荐用 "合并后分发" 的方式,仅需输入两次密码,比逐个复制更高效,以 node1 为操作节点举例:

1.在 node1 上合并公钥(在node1中会生成一个~。ssh/authorized_keys文件):

bash 复制代码
# 先将 node1 自身的公钥写入授权文件
cat ~/.ssh/id_rsa.pub > ~/.ssh/authorized_keys
# 从 node2 复制公钥到 node1 的授权文件(输入 node2 的登录密码)
ssh node2 "cat ~/.ssh/id_rsa.pub" >> ~/.ssh/authorized_keys
# 从 node3 复制公钥到 node1 的授权文件(输入 node3 的登录密码)
ssh node3 "cat ~/.ssh/id_rsa.pub" >> ~/.ssh/authorized_keys

2.将合并好的授权文件分发到 node2 和 node3:

bash 复制代码
# 分发到 node2(输入 node2 密码)
scp ~/.ssh/authorized_keys node2:~/.ssh/
# 分发到 node3(输入 node3 密码)
scp ~/.ssh/authorized_keys node3:~/.ssh/

步骤 3:修复文件权限(必须执行)

SSH 对文件权限要求严格,权限过宽会导致免密登录失败,需在所有三个节点 上执行以下命令:

bash 复制代码
# 限制 .ssh 目录权限为仅当前用户可读写执行
chmod 700 ~/.ssh
# 限制授权文件权限为仅当前用户可读写
chmod 600 ~/.ssh/authorized_keys

步骤 4:测试免密登录

在任意节点执行 SSH 命令测试,例如:

在 node1 测试登录 node2:ssh node2

在 node2 测试登录 node3:ssh node3

在 node3 测试登录 node1:ssh node1

若无需输入密码直接进入目标节点的命令行,说明配置成功。

相关推荐
一直都在57210 分钟前
深入理解 synchronized:到底锁的是谁?
运维·服务器
RisunJan15 分钟前
Linux命令-mkbootdisk(可建立目前系统的启动盘)
linux·运维·服务器
Sst的头号粉丝31 分钟前
Docker——compose
运维·docker·容器
guoji778831 分钟前
2026年Gemini 3 Pro vs 豆包2.0深度评测:海外顶流与国产黑马谁更强?
大数据·人工智能·架构
TDengine (老段)32 分钟前
TDengine IDMP 组态面板 —— 工具箱
大数据·数据库·时序数据库·tdengine·涛思数据
网络工程小王1 小时前
【大数据技术详解】——Kibana(学习笔记)
大数据·笔记·学习
朽棘不雕1 小时前
Linux工具(上)
linux·运维·服务器
daad7771 小时前
bitcoin HD钱包示例 真实使命7
运维·服务器
BestOrNothing_20151 小时前
Ubuntu 22.04 下调整 VS Code 界面及字体教程
linux·vscode·ubuntu22.04·界面调整
Zero-Talent2 小时前
TCP/IP协议
运维·服务器·网络