前言
本文的搭建基于上卷的配置,环境不再一一赘述。网络配置好的5台节点均可相互ping通,对于节点hadoop1(192.168.20.2)可以ping同其余四台hadoop2(192.168.20.3)、hadoop3(192.168.20.4)、hadoop4(192.168.20.5)、hadoop5(192.168.20.6)。其余节点同理。
本文继续进行集群的搭建—-SSH配置。禁止root账户进行ssh登陆,只允许指定用户进行ssh登陆。
定义用户
添加用户已经在上卷中提及,仅供参考。这里假设所有节点均有一个账户:deploy,密码:hadoop。
同时,已在/etc/sudoers文件提高了deploy的权限。
SSH配置
修改ssh配置文件
配置文件是:/etc/ssh/sshd_config。找到相关变量,修改为:
- PermitRootLogin no
- RSAAuthentication yes
- PubkeyAuthentication yes
- AuthorizedKeysFile .ssh/authorized_keys
- PasswordAuthentication no
以上配置作用分别是:禁止root用户远程ssh,开启RSA验证,开启公钥验证,设置验证密钥文件在~/.ssh/authorized_keys中,禁止密码登录。
保存,重启ssh服务生效。重启命令:/etc/init.d/sshd restart
生成公钥私钥
以deploy登录,进入~目录,输入ssh-keygen -t rsa
命令,一路回车生成id_rsa(私钥)和id_rsa.pub(公钥)。
生成的文件在目录:~/.ssh/下。
在该目录下新建authorized_keys文件,将id_rsa.pub的内容拷贝的该文件中,后续有ssh请求均会来此文件验证内容。
同时,给相关文件赋予权限:chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
此时,即可利用私钥id_rsa用deploy账户登陆该机器。
拷贝各节点的公钥
在各个节点重复上述过程,修改ssh的配置文件,在deploy账户下生成密钥,赋予文件权限。
为了让集群的节点能相互ssh登陆,需要讲个节点的公钥全部放置到deploy账户下的~/.ssh/authorized_keys(/home/deploy/.ssh/authorized_keys)文件中。每个节点的authorized_keys应该是相同的。
配置总结
SSH是会验证不同用户账户下的~/.ssh/authorized_keys的公钥。在Linux系统中,~是指当前账户所在的目录。因为Linux支持多账户,所以,用不同的账户登录,~就代表不同路径。以deploy账户登录,则~代表:
/home/deploy/;以deploy2账户登录,~就代表:/home/deploy2/。
如果指定某账户能ssh登录,则必须在登录该账户的情况下,在~目录下生成公钥和私钥。