一、文档概述
本文档记录 master + slave1 双节点集群的主机名配置 与SSH 双向免密登录完整流程,用于实现节点间无密码访问与清晰的主机名标识。
二、主机名配置(节点更名)
2.1 核心目标
将 master 节点主机名从 localhost 改为 master,slave1 节点改为 slave1,使终端提示符显示为 root@master / root@slave1。
2.2 配置步骤
2.2.1 master 节点主机名配置
-
永久修改主机名
hostnamectl set-hostname master-
作用:将系统静态主机名永久修改为
master,重启后仍生效。 -
原理:修改
/etc/hostname文件,系统启动时读取该文件作为主机名。
-
-
验证主机名
hostname # 查看当前主机名 hostnamectl status | grep "Static hostname" # 查看永久配置master Static hostname: master -
刷新终端提示符
已打开的会话不会自动更新提示符,需执行以下命令之一:
exec bash # 重启当前 shell,立即刷新提示符(推荐) # 或 exit && ssh root@master # 退出后重新登录,新会话显示新主机名
-
最终效果
[root@master ~]#
2.2.2 slave1 节点主机名配置
-
永久修改主机名
hostnamectl set-hostname slave1 -
验证主机名
hostname hostnamectl status | grep "Static hostname"slave1 Static hostname: slave1 -
刷新终端提示符
exec bash -
最终效果
[root@slave1 ~]#
2.3 hosts 映射配置
在 master 和 slave1 节点 均执行以下操作,确保节点间能通过主机名解析:
vi /etc/hosts
添加完整映射:
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6 192.168.56.110 master 192.168.56.111 slave1
三、SSH 双向免密登录配置
3.1 核心目标
实现 master ↔ slave1 节点间无密码 SSH 登录,避免集群运维时重复输入密码。
3.2 master → slave1 单向免密配置
3.2.1 在 master 节点生成密钥对
ssh-keygen -t rsa
-
一路回车,生成 RSA 密钥对:
-
私钥:
/root/.ssh/id_rsa -
公钥:
/root/.ssh/id_rsa.pub
-
3.2.2 分发公钥到 slave1
ssh-copy-id root@slave1
-
输入
yes确认主机真实性,再输入 slave1 的 root 密码,完成公钥分发。 -
✅ 成功提示:
Number of key(s) added: 1
3.2.3 验证免密登录
ssh root@slave1
- 无需输入密码,直接登录 slave1,提示符变为
[root@slave1 ~]#。
3.3 slave1 → master 单向免密配置
3.3.1 在 slave1 节点生成密钥对
ssh-keygen -t rsa
3.3.2 分发公钥到 master
ssh-copy-id root@master
-
输入
yes确认,再输入 master 的 root 密码,完成公钥分发。 -
✅ 成功提示:
Number of key(s) added: 1
3.3.3 验证免密登录
ssh root@master
- 无需输入密码,直接登录 master,提示符变为
[root@master ~]#(主机名修改后)。
3.4 双向免密验证
|-----------------|-------------------|-----------------------------|
| 测试方向 | 命令 | 预期结果 |
| master → slave1 | ssh root@slave1 | 免密登录,提示符 [root@slave1 ~]# |
| slave1 → master | ssh root@master | 免密登录,提示符 [root@master ~]# |
四、常见问题与排查
4.1 SSH 登录后提示符未显示 root@master
-
原因:主机名未永久修改,或当前会话未刷新提示符。
-
解决:
-
永久修改:
hostnamectl set-hostname master -
刷新会话:
exec bash或重新登录。
-
4.2 ssh-copy-id 提示 Permission denied
-
原因:输入的目标节点 root 密码错误。
-
解决:重新输入正确密码,或检查目标节点是否允许 root 登录。
4.3 节点间 ping 不通
-
原因:防火墙/SELinux 未关闭,或 hosts 映射错误。
-
解决:
systemctl stop firewalld && systemctl disable firewalld setenforce 0 sed -i 's/^SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
五、文档版本信息
|------|----------------------------------------------|
| 项目 | 内容 |
| 文档版本 | V1.0 |
| 适用环境 | VirtualBox + CentOS 7 |
| 最后更新 | 2026-03-12 |
| 验证结果 | ✅ 主机名配置生效<br>✅ SSH 双向免密登录正常<br>✅ 节点间互通正常 |