配置hadoop各个节点之间免密码登录实践笔记

前言:
         

最近在搭建Hadoop环境需要设置无密码登陆,所谓无密码登陆其实是指通过证书认证的方式登陆,使用一种被称为"公私钥"认证的方式来进行ssh登录。

在linux系统中,ssh是远程登录的默认工具,因为该工具的协议使用了RSA/DSA的加密算法.该工具做linux系统的远程管理是非常安全的。telnet,因为其不安全性,在linux系统中被搁置使用了。

       " 公私钥"认证方式简单的解释:首先在客户端上创建一对公私钥 (公钥文件:~/.ssh/id_rsa.pub; 私钥文件:~/.ssh/id_rsa)。然后把公钥放到服务器上(~/.ssh/authorized_keys), 自己保留好私钥.在使用ssh登录时,ssh程序会发送私钥去和服务器上的公钥做匹配.如果匹配成功就可以登录了。


0-我们需要为每一台机器编辑hosts文件使主机名和主机ip映射关联起来 :vi /etc/hosts-->在里面添加所有节点的ip  主机名,类似如下格式:
                172.18.1.244    server244
                  172.18.1.246    server246
                172.18.1.249    server249  
添加完成后,再加上实现ssh免密码登录后就会在用户主目录下的.ssh文件夹下生成一个known_hosts文件
    
1-实现ssh免密码登陆之前首先得要保证你的电脑安装了ssh及sshd,并且确认本机sshd的配置文件( 需要root权限),我们先来编辑 vi /etc/ssh/sshd_config,

找到以下内容,并去掉注释符”#“

    RSAAuthentication yes
    PubkeyAuthentication yes
    AuthorizedKeysFile      .ssh/authorized_keys

 如果修改了sshd配置文件需要重启sshd服务   (需要root权限):在centos7之前可以通过service sshd restart重启,但是在centos7版本以上的输入service sshd restart它会重定向到一个新的命令,我们复制重定向的命令执行即可达到sshd重启的目的。

2-配置SSH的无密码登录可以首先新建专用用户hadoop进行操作,在此我们为每一个节点新建相同的hadoop用户,执行新建用户命令:adduser hadoop,接着为hadoop用户设置密码 passwd hadoop回车输入密码即可。

3-接着我们以hadoop用户身份登录:su hadoop,进入hadoop的家目录 cd /home/hadoop,输入:ssh-keygen -t rsa -P '',回车,会提示你保存生成的密码的位置,回车的话默认保存在当前目录下的.ssh文件夹下面,这样/home/hadoop/.ssh文件夹下面就有id_rsa和id_pub2个文件,然后我们把id_rsa.pub这个公钥文件追加到 authorized_keys文件中。

解释一下,第一条生成ssh密码的命令,-t 参数表示生成算法,有rsa和dsa两种;-P表示使用的密码,这里使用‘‘空字符串表示无密码。

第二条命令将生成的密钥写入authorized_keys文件。

这时输入 ssh localhost,弹出写入提示后回车,便可无密码登录本机(如果还是提示要输入密码则执行修改文件authorized_keys的权限(权限的设置非常重要,因为不安全的设置安全设置,会让你不能使用RSA功能 ):

修改authorized_keys文件权限的命令是: chmod 600 ~/.ssh/authorized_keys
)。同理,将authorized_keys文件 通过 scp命令拷贝到其它主机相同目录下,则可无密码登录其它机器。拷贝的命令如下:

scp authorized_keys [email protected]:/home/hadoop/.ssh  

正常情况下上面几步执行完成后,从主机A所在机器向主机A、主机B所在机器发起ssh连接,只有在第一次登录时需要输入密码,以后则不需要。

此时,只是实现了某一个节点登录自己和其他节点免密码,我们还需要以同样的方式实现其他的节点登录其它节点,就如同刚刚我们为这个节点设置的那样,也就是我们需要为其他节点生成公钥和私钥,然后把公钥保存(其实是追加)在authorized_keys文件中,接着把这个authorized_keys文件scp拷贝到其他所有节点,这样所有节点之间都可以实现和其他节点免密码登录,包括登录自己。


你可能感兴趣的:(大数据,Hadoop)