Hadoop免密登录配置及其原理

在上一篇博客Hadoop的环境搭建中提到在启动Hadoop的过程中需要输入好多次密码,烦都烦死了,这篇文章中讨论下如何免密登录以及免密登录的原理。

一、免登录配置

1. 首先生成密钥:

ssh-keygen -t rsa

一路回车即可。

一路回车之后就会生成一个目录:/root/.ssh  因为我是root用户所以在root目录下。.ssh是一个隐藏的目录,所有已点开头的都是隐藏目录,可以用命令看一下:


2. 进入到ssh 目录下,执行下面这条命令:

ssh-copy-id -i id_rsa.pub root@localhost

这个条命令的目的是将公钥发送到目标主机,将公钥保存到目标主机的/.ssh/authorized_keys这文件里面. 所以

localhost代表的是本机,在全分布式环境下可以是另外的主机,localhost就应该是主机的ip了,所以在全分布环境下需要两两进行这个操作,先生成公钥,然后发给另外的主机。

3. 再次启动你的Hadoop环境,就不需要输入密码了:start-all.sh

二、免登录的原理。

在上面的配置中,我们再次启动hadoop就不需要多次输入密码了,不输入密码并不是不需要登录了,而是后台默默把登录给我们做了,所以表面上就不需要我们登录了,下面说一下原理:

1. 假设我们有两台机器A和B,在上面的例子伪分布式中A和B是同一台机器。

2. 用命令ssh-keygen -t rsa,在机器A上生成一对公钥和私钥,公钥和私钥保存到.ssh目录下面:


其中id-rsa是私钥,id-rsa.pub是公钥

3. 接下来将A中的公钥发送给B: ssh-copy-id -i id_rsa.pub root@localhost,公钥会保存到authorized_keys. 因为我们是同一台机器,所以是localhsot

4. A 如果需要登录B,A就会发送一个连接请求给B,这个连接请求包含用户名和ip等

5. B接收到登录请求就会去authorized_keys这个文件中查找对应的公钥:


6. 查找到对应的公钥,B就会随机生成一个字符串,用公钥对其进行加密,然后发送给A。

7. A对发送来的字符串用私钥进行解密,然后将机密后的字符串发送给B。

8. B收到字符串和原字符串进行对比,如果一致,允许A登录。

所以如果B想登录A的话,也需要生成RSA秘钥并将公钥发送给A即可。

欢迎关注我的公众号: manong_xiaodong

manong_xiaodong
  • 4
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

悟红尘

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值