在配置Hadoop集群分布時,要使用SSH免密碼登錄,假設現在有兩台機器hadoop@Master(192.168.1.101),作為Master機,hadoop@Slave(192.168.1.102),作為Slave機。現想hadoop@Master通過ssh免密碼登錄到hadoop@Slave。
1.在Master機下生成公鑰/私鑰對。
1.在Master機下生成公鑰/私鑰對。
[hadoop@Master ~]$ ssh-keygen -t rsa -P '
敲擊回車鍵即可,
它在/home/hadoop下生成.ssh目錄,.ssh下有id_rsa和id_rsa.pub。
2.把Master機器下的id_rsa.pub復制到Slave機器下的.ssh/authorized_keys文件里。
[hadoop@Master ~]$ scp .ssh/id_rsa.pub hadoop@192.168.10.102:/home/hadoop/id_rsa.pub.hadoop_master
hadoop@192.168.10.102's password:
由於還沒有免密碼登錄的,所以要輸入密碼。
3.Slave機把從Master機復制的id_rsa.pub.hadoop_master添加到.ssh/authorzied_keys文件里。
[hadoop@Slave ~]$ cat id_rsa.pub.hadoop_master >> .ssh/authorized_keys
[hadoop@Slave ~]$ chmod 600 .ssh/authorized_keys
authorized_keys的權限要是600。
4.Master機登錄Slave機。
[hadoop@Master ~]$ ssh 192.168.10.102
第一次登錄是時要你輸入yes。
現在MasterMaster機可以無密碼登錄Slave機了。
小結:登錄的機子可有私鑰,被登錄的機子要有登錄機子的公鑰。這個公鑰/私鑰對一般在私鑰宿主機產生。上面是用rsa算法的公鑰/私鑰對,當然也可以用dsa(對應的文件是id_dsa,id_dsa.pub)
想讓Master,Slave機無密碼互登錄,那Slave機以上面同樣的方式配置即可,把Slave的公鑰復制過去添加到authorized_keys的末尾就行了。
小結:登錄的機子可有私鑰,被登錄的機子要有登錄機子的公鑰。這個公鑰/私鑰對一般在私鑰宿主機產生。上面是用rsa算法的公鑰/私鑰對,當然也可以用dsa(對應的文件是id_dsa,id_dsa.pub)
想讓Master,Slave機無密碼互登錄,那Slave機以上面同樣的方式配置即可,把Slave的公鑰復制過去添加到authorized_keys的末尾就行了。
至此完畢。