10. 节点间免密登陆
2020-03-05 本文已影响0人
逸章
实现节点之间免密服务原理:
通过把所有节点的公钥写入authorized_keys文件中,再把这个文件传输给每一台节点,此时所有节点都有了其他节点的公钥,则登录时就不需要输入密码
在每台主机上输入
ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa
创建一个无密码的公钥,-t是类型的意思,dsa是生成的密钥类型,-P是密码,’’表示无密码,-f后是秘钥生成后保存的位置
创建完成后,会出现两个文件:
id_dsa 存放私钥
id_dsa.pub 存放公钥
输入
cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
将公钥id_dsa.pub添加进authorized_keys
执行后会创建authorized_keys文件,这个文件用来放其他节点的公钥。
在非master节点上输入
ssh-copy-id -i ~/.ssh/id_dsa.pub master
将自己的公钥传输给master节点。
这时,master节点拥有所有节点的公钥。
在master中输入
scp -r /用户家目录/.ssh/authorized_keys 用户@主机名:/对应用户的家目录/.ssh/
scp -r /home/hadoop/.ssh/authorized_keys root@node1:/home/hadoop/.ssh/
scp -r /home/hadoop/.ssh/authorized_keys root@node2:/home/hadoop/.ssh/
scp -r /home/hadoop/.ssh/authorized_keys root@node3:/home/hadoop/.ssh/
在每一台主机上输入
chmod 600 authorized_keys
修改文件权限
重启服务
service sshd restart
此时每个节点都保存了所有的公钥,节点之间也就可以ssh免密登录了(第一次仍然需要密码)