ssh免密登录配置
作者:@郑琰
本文转载请注明出处!:https://www.cnblogs.com/zhengyan6/p/16027426.html
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节点无密码登录
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)