一、SSH無密碼登錄原理
此操作是為了搭建hadoop集群進行的操作
Master(NameNode|JobTracker)作為客戶端,要實現無密碼公鑰認證,連接到服務器Salve(DataNode|Tasktracker)上的時候,需要在Master上生成一個密鑰對(公鑰和私鑰),當Master通過SSH連接到Slave的時候,Slave就會生成 一個隨機數並用Master的公鑰對隨機數進行加密,並發送給Master.Master收到加密數值再用私鑰解密,並將解密數據回傳給Slave,Slave確認解密數據無誤之后就允許Master進行連接了,這就是公鑰認證過程,期間不需要手動輸入密碼,重要的是將客戶端Master復制到Slave上
二、前期准備
1、安裝配置一台master服務器和一台slave服務器
172.128.120.0 localhost.hadoop 172.128.120.1 localhost.slave1 2、配置hosts文件
三、配置master免密登陸slave1
1、在Master機器上成成密鑰對,文件默認保存在/home/hadoop/.ssh文件夾下
ssh-keygen:代表生成秘鑰
-t:表示指定省的秘鑰類型
rsa:秘鑰類型
-P:用於提供密語
[-f]:指定生成的秘鑰文件,是可選的
2、根據sshd_config中的配置,將公鑰文件追加到授權的key里面去
3、查看/etc/ssh/sshd_config文件
4、修改authorized_keys文件的權限,因為權限不對的話不可以使用RSA功能
chmod 600 ~/.ssh/suthorized_keys
5、驗證是否可以使用無密碼登陸本機
6、將master上的公鑰復制到slave1機器上
7、slave1機器上將master上復制來的公鑰追加到authorized_keys文件中,並更改文件權限,同理也需要修改sshd_config配置文件
8、驗證master無密登陸slave
四、配置slave1免密登陸master
1、slave1上生成秘鑰
2、slave1上追加key並修改權限
3、復制slave1上的公鑰到master上
4、在master服務器上將slave1的公鑰追加到key文件中
5、查看aster的authorized_key文件就可以看到slave1的公鑰也加入到其中了
6、驗證slave1是否可以無密連接master