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

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

相关推荐
大树889 小时前
金刚石散热越强,管路越先见顶
大数据·运维·服务器·人工智能·ai
摇滚侠9 小时前
Linux CentOS7 rpm 安装 MySQL 5.7
linux·运维·mysql
大志哥12310 小时前
ES和Logstash日志链路系统上线后遭遇切片爆炸(解决)
大数据·elasticsearch
霸道流氓气质10 小时前
领域驱动设计(DDD)在 Spring Boot 微服务中的实践指南
运维·spring boot·微服务
bush410 小时前
嵌入式linux学习记录十四、术语
linux·嵌入式
载数而行52010 小时前
Linux 11 动态监控指令top
linux
Inhand陈工11 小时前
基于台达PLC与映翰通IG502的智慧水产养殖精准投喂与远程运维解决方案
运维·人工智能·物联网·阿里云·信息与通信
果丁智能11 小时前
物联网智能锁赋能集中式住宿:身份核验与远程权限管控的全链路技术实践
大数据·人工智能·物联网·智能家居
酣大智11 小时前
ARP代理--工作原理
运维·网络·arp·arp代理
不会C语言的男孩11 小时前
Linux 系统编程 · 第 8 章:进程基础
linux·c语言