虚拟机之间配置免密登录(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

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

相关推荐
AI营销前沿3 小时前
私域AI首倡者韩剑,原圈科技领航AI营销
大数据·人工智能
此生只爱蛋4 小时前
【Linux】正/反向代理
linux·运维·服务器
Percent_bigdata4 小时前
数据治理平台选型解析:AI大模型与智能体如何重塑企业数字基座
大数据·人工智能
hg01184 小时前
广西对外农业投资规模稳增 民营企业成主力军
大数据
qq_5470261794 小时前
Linux 基础
linux·运维·arm开发
zfj3214 小时前
sshd除了远程shell外还有哪些功能
linux·ssh·sftp·shell
废春啊4 小时前
前端工程化
运维·服务器·前端
我只会发热4 小时前
Ubuntu 20.04.6 根目录扩容(图文详解)
linux·运维·ubuntu
爱潜水的小L4 小时前
自学嵌入式day34,ipc进程间通信
linux·运维·服务器
保持低旋律节奏4 小时前
linux——进程状态
android·linux·php