每台主机authorized_keys文件里面包含想要免密登录主机的ssh公钥,就能实现免密登录,所以只要每台主机的authorized_keys文件里面都放入其他主机(需要无密码登录的主机)的ssh公钥就行了。
配置服务器集群的hosts文件,方便标识
-> vim /etc/hosts
10.0.27.132 hadoop.master01
10.0.27.133 hadoop.slave01
10.0.27.134 hadoop.slave02
在主节点上生成ssh密钥:
-> ssh-keygen -t rsa
-> cd ~/.ssh/
在主节点上将公钥拷到一个特定文件authorized_keys中
-> cp id_rsa.pub authorized_keys
使用scp命令把主节点上的authorized_keys分发到其它节点,按照第一步的命名生成其它节点的ssh密钥,并把公钥追加到authorized_keys文件中:
-> scp authorized_keys root@hadoop.slave01:/root/.ssh/
-> cat id_rsa.pub >> authorized_keys
最后将所有服务器的公钥都添加好authorized_keys文件通过scp命令重新分发到集群中的所有服务器,完成后就可以使用ssh username 的命令互相免密登录。
-> ssh hadoop.slave01
重点是authorized_keys文件内拥有所有服务器的公钥内容