hadoop集群环境需要互相登录到集群中的机器,一般的我们需要有一个账户hadoop用于登录集群中的其它机器
涉及到ssh免密码登录相关。开始之前最好将服务器名称,/etc/hosts等都修改下。
修改服务器名称
hostnamectl set-hostname #这种方式永久生效
hostname #临时生效
linux免密码登录
远程登录安全协议的两种验证机制:
1 用户名+密码的登录验证方式 :ssh
2 密钥验证
server A免登录到server B:
1.在A上生成公钥私钥。
2.将公钥拷贝给server B,要重命名成authorized_keys(从英文名就知道含义了)
3.Server A向Server B发送一个连接请求。
4.Server B得到Server A的信息后,在authorized_key中查找,如果有相应的用户名和IP,则随机生成一个字符串,并用Server A的公钥加密,发送给Server A。
5.Server A得到Server B发来的消息后,使用私钥进行解密,然后将解密后的字符串发送给Server B。Server B进行和生成的对比,如果一致,则允许免登录。
总之:A要免密码登录到B,B首先要拥有A的公钥,然后B要做一次加密验证。对于非对称加密,公钥加密的密文不能公钥解开,只能私钥解开。
生成公/私钥 ssh-keygen -t rsa #在当前用户home目录下的.ssh下出现id_rsa(私钥) id_rsa.pub(公钥) 然后将公钥复制到被登录机的.ssh/authorized_keys文件中
ssh-copy-iduser@hostname# user为登录目的机的用户名,hostname为目的机的域名
#参考man ssh-copy-id
普通用户加入root组
usermod -g root username
# /etc/sudoers 下可配置以超级用户权限操作命令
username ALL=(ALL) ALL