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

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

相关推荐
weixin_399380698 分钟前
OA 系统假死问题分析与优化
java·运维
SmartRadio11 分钟前
在CH585M代码中如何精细化配置PMU(电源管理单元)和RAM保留
linux·c语言·开发语言·人工智能·单片机·嵌入式硬件·lora
济61721 分钟前
linux(第十四期)--Uboot移植(2)-- 在U-Boot 中添加自己的开发板-- Ubuntu20.04
linux·运维·服务器
ben9518chen24 分钟前
嵌入式linux操作系统简介
linux·运维·服务器
菜鸟笔记本26 分钟前
linux设置定时备份mysql数据
linux·mysql·oracle
majingming12329 分钟前
ubuntu下的交叉编译
linux·运维·ubuntu
shchojj32 分钟前
ubuntu 因为写错pam.d文件引起的sudo权限丢失
linux·运维·ubuntu
小康小小涵34 分钟前
WSL2安装与移植到F盘
运维·服务器
新诺韦尔API39 分钟前
手机三要素验证不通过的原因?
大数据·智能手机·api
funfan05171 小时前
【运维】Linux/Debian系统时间校准方法简记
linux·运维·debian