登录
首页大数据时代大数据时代:SSH如何免密码登录?
大数据时代:SSH如何免密码登录?
2020-06-02
收藏

Hadoop集群是由许多的节点服务器组成的,当我们启动hadoop集群时,hadoop的Namenode需要连接并且管理这些节点服务器(主要是DataNode)。

此时系统会要求用户输入密码,提示内容与上篇文章中的ssh连接localhost时的提示是一样的,这从侧面说明Hadoop的Namenode是通过ssh方式连接控制节点DataNode服务的。

如下图所示,hadoop使用ssh连接各个节点,ssh会对传输的数据进行加密,防止在数据传输过程中发生泄漏的问题。

为了让系统可以顺利的运行而不用一次一次的输入密码,我们需采用一种方法,将SSH设置为免密登录(免密登录并不是不需要密码就可以登录,只是换了一种身份认证方式而已)。

1、 SSH免密登录的原理

上篇文章中介绍过SSH的两种安全验证方式,其中第二种基于密钥的安全验证的过程如下:

A提供一对密钥(公钥和私钥),把公钥放在需要访问的服务器B上,如果A连接到SSH服务器B上,客户端A就会向服务器B发出请求,请求用密钥进行安全验证,服务器B收到请求之后,先在该服务器的主目录下寻找公钥,然后把它和发送过来的公钥进行比较。

如果两个密钥一致,服务器B就用公钥加密随机字符串,并把它发送给客户端A。客户端A收到加密随机字符串之后就可以用私钥解密再把它发给服务器端B。

服务端B进行比对如果比对结果正确则A加入服务器B的授权列表。基于这种方式,相对比较安全。其原理图如下所示:

2、Ubuntu中实现SSH免密登录的操作

打开终端(Ctrl+Alt+t),执行命令 cd .ssh进入用户主目录下的.ssh文件夹,如果没有该文件夹则手动创建:mkdir .ssh

可以执行ls命令查看.ssh文件目录下的文件

如上图所示,由于之前登录过localhost,所以此时.ssh文件夹下有known_hosts文件,手动创建.ssh文件夹的没有该文件。

创建一对公私钥,在.ssh文件夹下执行命令:ssh-keygen -t rsa ,生成过程会有停顿让你做选择,直接回车键按默认配置执行即可。

执行完成后公私钥文件就已经生成在当前目录下(.ssh文件夹下),通过执行ls命令查看当前文件下的文件如下图所示:

Id_rsa为私钥文件id_rsa.pub为公钥文件,known_hosts为登录过的设备记录。

将id_rsa.pub追加到需要免密登录的ssh服务器的许可文件中,在这里我们免密登录的是当前电脑即localhost,只需将文件id_rsa.pub内容追加到authorized_keys即可。执行命令:cat ./id_rsa.pub >> ./authorized_keys

此时执行命令ls查看当前目录下的文件变化如下图所示,增加了授权文件authorized_keys

免密登录的配置操作到此就完成了,我们可以通过执行ssh localhost命令测试一下,如下图所示没有输入密码即可成功登陆。

小伙伴们你成功了没?高兴之余不要忘记执行exit退出ssh登录,养成好习惯减少人为原因造成的失误。今天的内容就到这里喽,拜拜┏(^0^)┛。

数据分析咨询请扫描二维码

客服在线
立即咨询