在配置hadoop中,经常会有好几台机器组成一个分布式集群,各个机器之间的通信通常需要使用ssh的方式进行连接。正常情况下,我们连接登录机器的时候是需要输入IP、用户名、密码等等的信息,但是由于经常需要频繁地连接,因此若每次都需要输入这些信息那就太过繁琐了,因此最好将集群各个机器配置免密码登录。下面简单将一下免密码登录的原理:


首先讲一下计算机网络安全中的加密机制,当前的加密类型可以概括为量大类,一类是对称密码算法,一类是非对称密码算法。所谓对称与非对称主要是指加密和解密时使用的密钥是否一致,若一致则为对称密码算法,若不一致则为非对称密码算法。对称密码算法的主要优点是加密速度快,但是安全性相对较差,使用与对安全性要求不那么高的大文件进行加密;而非对称密码算法的主要优点是安全性极高,确定是加密速度较慢,不适合大文件的加密场景;当然现在有很多加密方案会同时结合这两种类型的密码算法,既能兼顾到加密的速度,又能考虑到安全性的问题。


在ssh免密码登录的应用中,主要是非对称密码算法。通常每台机器都有自己的一对密钥,一个我们称为公钥,一个我们称为私钥,无论用哪个对数据进行加密,解密时候都需要另外的一个密钥。但是公钥是公开的,也就是说任何人都可以通过合法的手段获取到,但是私钥是私密的,其他人是无法获得的。使用公钥加密、私钥解密的方式经常用于加密场景,而使用私钥加密、公钥解密的方式经常用于身份验证、数字签名等。


下面我们具体看一下下面这个图,spark01中会有一个授权列表文件authorized_keys文件,这里面需要保存weekend110的一个公钥副本。首先weekend110要请求登录spark01,这时候spark01会查看本地的授权列表,若找到weekend110的公钥,则用此公钥加密一个随机字符串发送给weekend110,weedkend110收到后使用自己的私钥进行解密,解密结果再发给spark01, spark01收到后验证时候与刚刚自己产生的随机字符串相同,若相同则通过验证,完成登录。

hadoop为什么 hadoop为什么要免密_网络安全