ssh免密登录配置

hadoop主机设置免密

环境设置

需要三台或三台以上的主机
并修改主机名分别为:master,slave1,slave2

hostnamectl set-hostname master
hostnamectl set-hostname slave1
hostnamectl set-hostname slave2

配置网络(配置均在同一网段),并分别修改主机配置文件"/etc/hosts"

#配置网络为基础设置,此处省略,此处实验三台主机IP为:
master 192.168.10.10/24
slave1 192.168.10.20/24
slave2 192.168.10.30/24
#配置"/etc/hosts"域名解析  三台都需配置域名解析
vim /etc/hosts
写入:
192.168.10.10      master
192.168.10.20      slave1
192.168.10.30      slave2
保存退出
#三个文件配置完成之后需要互相ping一下看看是否能通,通则可,否则检查配置文件及相关配置
ping master
ping slave1
ping slave2

生成ssh密钥

每个节点安装和启动 SSH 协议

实现 SSH 登录需要 openssh 和 rsync 两个服务,一般情况下默认已经安装,可以通过下面命令查看结果:

创建用户hadoop(三台均需创建)

命令为:

配置ssh服务配置文件,开启公钥登录功能(三台均需执行)

使用 root用户登录,修改 SSH配置文件"/etc/ssh/sshd_config"的下列内容,需要将PubkeyAuthentication yes前面的#号删除,启用公钥私钥配对认证方式。

vim /etc/ssh/sshd_config
去掉#号
systemctl restart sshd   #修改配置文件需要重启

切换到hadoop用户并生成密钥对(三台均需执行)

  • 在master节点上生成密钥

  • 在slave1节点上生成密钥

  • 在slave2节点上生成密钥

查看"/home/hadoop/"下是否有".ssh"文件夹,且".ssh"文件下是否有两个刚生产的无密码密钥对。

将 id_rsa.pub追加到授权key文件中(三台均需执行)

  • master节点

  • slave1节点

  • slave2节点

修改文件"authorized_keys"权限(三台均需执行)

注意:通过 ll命令查看,可以看到修改后 authorized_keys文件的权限为“rw-------”,表示所有者可读写,其他用户没有访问权限。如果该文件权限太大,ssh服务会拒绝工作,出现无法通过密钥文件进行登录认证的情况。
文件权限: .ssh 700 | id_rsa 600 | id_rsa.pub 644

  • master

  • slave1

  • slave2

验证ssh登录本机(三台均需执行)

在 hadoop用户下验证能否嵌套登录本机,若可以不输入密码登录,则本机通过密钥登录认证成功。
首次登录时会提示系统无法确认 host主机的真实性,只知道它的公钥指纹,询问用户是否还想继续连接。需要输入“yes”,表示继续登录。第二次再登录同一个主机就不会再出现该提示,可以直接进行登录。

  • master

  • slave1

  • slave2

交换ssh密钥

将master节点公钥复制到每个slave节点

将 Master 节点的公钥 id_rsa.pub 复制到每个 Slave 点hadoop用户登录,通过 scp命令实现密钥拷贝。

首次远程连接时系统会询问用户是否要继续连接。需要输入“yes”,表示继续。因为目前尚未完成密钥认证的配置,所以使用 scp命令拷贝文件需要输入 slave1节点 hadoop用户的密码。

  • master

在slave节点上将公钥复制到文件里

在每个 Slave节点把 Master节点复制的公钥复制到 authorized_keys文件
使用hadoop用户登录 slave1和 slave2节点,执行命令。

  • slave1

  • slave2

将每个 Slave节点的公钥保存到 Master

  • slave1

  • slave2

在 Master节点把从 Slave节点复制的公钥复制到 authorized_keys文件

验证 SSH 无密码登录

  • 查看 Master 节点 authorized_keys 文件
    可以看到 Master节点 authorized_keys文件中包括 master、slave1、slave2三节点的公钥。

  • 验证 Master到每个 Slave节点无密码登录
    hadoop用户登录 master节点,执行 SSH命令登录 slave1和 slave2节点。可以观到不需要输入密码即可实现 SSH登录。

  • 验证两个 Slave节点到 Master节点无密码登录

posted @ 2022-03-19 18:38  郑琰  阅读(4253)  评论(0编辑  收藏  举报
#

# #