服务器集群免密登陆配置

博客介绍了Hadoop用户免密登录的配置过程。前期需创建hadoop用户、修改hostname和hosts。正文部分详细说明了配置步骤,包括新建.ssh路径、生成公钥私钥、添加公钥到授权、机器间同步公钥、修改权限以及用户确认,确保由hadoop用户操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

PreDo

这里可能需要做两个步骤

  1. 创建hadoop用户
useradd hadoop
su hadoop
  1. 修改hostname
sudo vim /etc/hostname

例如修改为hadoop001

  1. 修改hosts
sudo vim /etc/hosts

在末尾添加,具体ip根据自己实际情况进行更改

192.168.71.130 hadoop002
192.168.71.133 hadoop001
192.168.71.131 hadoop003

修改成功后,重启生效

正文

为了避免频繁使用root,我们这里使用hadoop用户进行配置

1. 新建路径.ssh
mkdir ~/.ssh
2. 生成公钥私钥
cd ~/.ssh
# 敲三下回车生成
ssh-keygen -t rsa
3. 将公钥添加到授权中
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
4. 在机器间同步公钥
  • 通过scp的方式将authorized_keys发送到集群的其他机器,采用相同的方式将其他机器的公钥添加到authorized_keys中,这个过程可能需要输入password
    需要注意的是,生成密钥的用户需要为hadoop用户,若是在root权限下生成的密钥,里面包含root@,代表着这个密钥只会在以root用户登录时才会免密。
    用hadoop生成的密钥,里面会包含hadoop@

  • 将包含有集群中所有服务器公钥的authorized_keys文件,再通过scp的方式同步到每一台机器的~/.ssh/中,覆盖原有authorized_keys

5. 修改权限

否则可能会导致文件无法正常读取,登陆时仍需要输入密码

# 修改.ssh目录权限
chmod 700 ~/.ssh
# 修改authorized_keys权限
chmod 600 ~/.ssh/authorized_keys
6. 用户确认

使用ll查看authorized_keys以及.ssh/,确保是hadoop用户拥有,如果是root,使用chown将其改为hadoop

chown -R hadoop:hadoop ~/.ssh
### SSH三台服务器免密登录实验报告 #### 实验背景 在分布式系统、集群环境或自动化运维场景下,频繁的手动输入密码进行SSH连接不仅效率低下,而且容易出错。因此,配置SSH无密码登录可以极大地提高工作效率并简化操作流程。 本实验旨在通过设置三台Linux服务器之间的SSH互信(即无需每次手动输入密码即可完成远程登录),从而实现高效的自动化管理。 #### 环境准备 1. **操作系统**:所有机器均采用CentOS 7.x版本。 2. **网络拓扑结构** - Server A (IP: 192.168.0.1) - Server B (IP: 192.168.0.2) - Server C (IP: 192.168.0.3) 每个节点都已安装了`openssh-client` 和 `openssh-server` 并正常运行,并且能够相互访问对方的开放端口(默认为22)。 #### 步骤一:生成公钥对 首先,在Server A上创建一个新的RSA密钥对用于身份验证: ```bash ssh-keygen -t rsa -b 4096 -f ~/.ssh/id_rsa_A ``` 这里我们指定了文件名为id_rsa_A以便于区分其他可能存在的私钥文件;同时设置了更大的位数以增强安全性(-b 参数)。 接下来将产生的公钥分发给另外两台服务端(Server B & Server C): ```bash cat ~/.ssh/id_rsa_A.pub | ssh user@serverB "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys" # 对于第三个服务器重复同样的过程... cat ~/.ssh/id_rsa_A.pub | ssh user@serverC "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys" ``` 注意替换上述命令中的"user"为您实际使用的用户名以及目标主机名/IP地址. #### 步骤二:测试连通性 回到Server A终端尝试直接通过ssh命令去链接Server B/C: ```bash ssh user@serverB # 如果成功则表示不需要再提供额外的信息如密码等信息. ssh user@serverC # 同样地检查与第三台电脑间的通信状况。 ``` 如果一切顺利的话,则证明已经实现了从A到BC两者的无缝接入;反之若失败需排查错误原因,比如权限问题或是防火墙阻止等情况。 为了保证双向互通,在Server B 和 Server C 上也应各自执行一次相同的步骤来交换它们各自的公钥至其余两个成员那里。(即将Server B 的 id_rsa_B 分别发送给 A&C ; 将Server C 的 id_rsa_C 发送给 A&B ) #### 结论 至此整个过程中涉及到的所有设备间均已建立起基于SSH协议的安全通道,可以在彼此之间自由穿梭而不再受限于繁琐的身份认证环节。这对于日常工作中需要频繁跨越多台物理机工作的工程师来说是非常有帮助的功能特性之一。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值