SSH免密登录配置及原理

SSH免密登录配置及原理

前言:上篇博文介绍如何安装Hadoop以及单机版HDFS集群的配置,但是我们采用
start-dfs.sh 启动HDFS集群的时候,要不断的输入密码,这是因为这种方式启动集群时,它可以在任意一台机器节点上启动整个集群,但在启动其它机器节点时,都需要输入密码。那么真正的集群也许有很多的机器节点,这个时候如果启动hdfs都一一的输入密码,肯定是不合理的,也是做不到的。因此如何实现hdfs的免密登录呢?本文将对其进行介绍。

一、另一种启动hdfs的命令 hadoop-daemon.sh

hadoop-daemon.sh仅仅可以启动本地机器的节点,不需要输入密码。

hadoop-daemon.sh start namenode
hadoop-daemon.sh start datanode
hadoop-daemon.sh start secondarynamenode

上面的命令可以不需要密码而启动三个节点,但这些节点都在本地机器上,因此它并不能启动整个集群,故也不能满足我们的要求。

hadoop-daemon.sh stop namenode
hadoop-daemon.sh stop datanode
hadoop-daemon.sh stop secondarynamenode

上面的命令对应的关闭本地各个节点。

二、采用SSH免密启动集群

1、SSH工作原理

在这里插入图片描述
可以用谍战片中的队友接头来简单理解SSH秘钥:
接头人A拥有一对公钥和秘钥,
接头人B拥有接头人A的公钥,
有一天,组织上给接头人A一张照片,让他去和照片上的队友(B)接头,传递一条及其重要的消息,此消息事关…(哈哈,戏精上身)
就这样,
接头人A拿着公私密钥,按照组织的指示到了指定地点,见到了接头人B,但B不认识他呀,
所以,
接头人A潇洒的拿出公钥,问接头人B:大锅,你吃饭没呀(公钥)
接头人B一听,哎呀妈呀,这是我的接头暗号呀(公钥),嗯…,可能是同志
接头人B回复(质询):大兄弟,你长得挺好看!
接头人A又潇洒的拿出秘钥解密后回复:大锅,你好眼光。
接头人B一听,哎妈呀,真的是同志呀,来来来,吃饭了没,快进屋坐。
就这样…A在B家畅通无阻。

以上就是SSH的工作原理(哈哈哈)

2、SSH配置

既然了解了SSH的工作原理,那么要想实现hdfs的免密登录,就需要以下配置:
1、在启动集群的机器上生成一对SSH公私秘钥

ssh-keygen

中间要求输入的,全部回车即可
然后,生成的公私秘钥在根目录的.ssh的隐藏文件夹中
在这里插入图片描述
2、把生成的公钥给集群的其它机器

sh-copy-id hadoop2

上面的hadoop2是你要讲公钥拷贝到哪台机器的机器名称,也可以用ip代替
执行上面的语句后,会把公钥拷贝到authorized_keys文件中,该文件也在.ssh这个隐藏文件中

[root@hadoop2 ~]# ls .ssh/
authorized_keys  id_rsa  id_rsa.pub  known_hosts
[root@hadoop2 ~]# cat .ssh/authorized_keys
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCpA6EyEWmlnFq+PqzYQQfVSOo8oT3AzGoHzSm+zW5Me96aIG0CINGfQjz+8WHZl2yDhy27CLhbnLfWSBmjFgkywVX/LmGvO87706m7a09A1I2pKoTx+l3cfc79INseq16S3X57WaDF4Ay2Gqyzqmy4Q6T28t88GogDbgVdRMIS37qHJO2tJASUP9HHpTq86roufaQsiAAFnUC3gxmz47k8tRcFAscRxjEAggrWi0DsI4xibQdLTw7VS5tSnSfLzTQuw+pICx84QpcqmUJC0/CoqgicDVavXc+VIGy4ggx7uBpCaS6rZHmVLe9faJKxEgrP5TZa0c3lM42ppT5efe5t root@hadoop2
[root@hadoop2 ~]# 

这样SSH的免密登录就完成了,此时再执行start-dfs.sh来启动hdfs集群或者执行stop-dfs.sh来停止hdfs集群,就都不需要输入密码了
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_34720818/article/details/106801475