虚拟机之间配置免密登录(Centos)
环境:三台虚拟机node1 node2 node3
确保三台虚拟机的/etc/hosts文件的配置都有有IP与名称的对应,如下:

步骤 1:在所有节点生成 SSH 密钥对
分别在 node1、node2、node3 上执行以下命令,生成无密码的 RSA 密钥对(全程按回车即可,不要输入额外密码):
ssh-keygen -t rsa -P "" -f ~/.ssh/id_rsa
执行后会在 ~/.ssh/ 目录下生成两个文件:
id_rsa:私钥,仅保留在当前节点,不可外泄
id_rsa.pub:公钥,需分发到其他所有节点。
步骤 2:合并所有公钥到一个授权文件
推荐用 “合并后分发” 的方式,仅需输入两次密码,比逐个复制更高效,以 node1 为操作节点举例:
1.在 node1 上合并公钥(在node1中会生成一个~。ssh/authorized_keys文件):
# 先将 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:
# 分发到 node2(输入 node2 密码)
scp ~/.ssh/authorized_keys node2:~/.ssh/
# 分发到 node3(输入 node3 密码)
scp ~/.ssh/authorized_keys node3:~/.ssh/

步骤 3:修复文件权限(必须执行)
SSH 对文件权限要求严格,权限过宽会导致免密登录失败,需在所有三个节点 上执行以下命令:
# 限制 .ssh 目录权限为仅当前用户可读写执行
chmod 700 ~/.ssh
# 限制授权文件权限为仅当前用户可读写
chmod 600 ~/.ssh/authorized_keys
步骤 4:测试免密登录
在任意节点执行 SSH 命令测试,例如:
在 node1 测试登录 node2:ssh node2
在 node2 测试登录 node3:ssh node3
在 node3 测试登录 node1:ssh node1
若无需输入密码直接进入目标节点的命令行,说明配置成功。

