配置免登陸安全
Ø建立或者修改密鑰目錄權限服務器
假設本機的IP爲「192.168.1.100」,配置免登陸的操做步驟以下: ssh
1. 以hadoop用戶登陸各服務器。 oop
2. 執行如下命令,修改「.ssh 目錄」權限。 spa
chmod 755 ~/.ssh rest
說明:若是「.ssh」目錄不存在,請在/home/hadoop目錄執行 mkdir ~/.ssh 命令建立。hadoop
a)若「.ssh目錄」不存在,建立」.ssh目錄」。it
mkdir ~/.ssh io
b)修改「.ssh 目錄」權限。 ast
chmod 755 ~/.ssh
Ø 建立公鑰和私鑰(此操做在全部服務器完成後再進入下一步)
1. 以hadoop用戶登陸本機(假設本機的IP爲「192.168.1.100」)。
2. 執行如下命令,進入「.ssh」目錄。
cd /home/hadoop/.ssh
3. 執行如下命令後,若是提示,就一直按「Enter」鍵,直至生成公鑰。
ssh-keygen -t rsa
若是建立公鑰和私鑰後(上圖最下面部分),提示的用戶名hadoop@後面不是本機別名(上圖紅色部分:如master),說明主機名稱須要從新配置一次,而後記得重啓,而後刪除/.ssh目錄下的公鑰和私鑰,從新生成,直到生成的密鑰後綴是本機別名。
接着在Master節點上作以下配置,把id_rsa.pub追加到受權的key裏面去。
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
在驗證前,須要作兩件事兒。第一件事兒是修改文件"authorized_keys"權限(權限的設置很是重要,由於不安全的設置安全設置,會讓你不能使用RSA功能),另外一件事兒是用root用戶設置"/etc/ssh/sshd_config"的內容。使其無密碼登陸有效。
1)修改文件"authorized_keys"
chmod 600 ~/.ssh/authorized_keys
2)設置SSH配置
用root用戶登陸服務器修改SSH配置文件"/etc/ssh/sshd_config"的下列內容。
vi /etc/ssh/sshd_config
RSAAuthentication yes # 啓用 RSA 認證
PubkeyAuthentication yes # 啓用公鑰私鑰配對認證方式
AuthorizedKeysFile .ssh/authorized_keys # 公鑰文件路徑(和上面生成的文件同)
設置完以後記得重啓SSH服務,才能使剛纔設置有效。
service sshd restart
退出root登陸,使用hadoop普通用戶驗證是否成功。
ssh localhost (主機名) [黃色部分爲變量]
從上圖中得知無密碼登陸本級已經設置完畢,接下來的事兒是把公鑰複製全部的Slave機器上。
Ø (3)拷貝公鑰到服務器(要登陸上去的那臺服務器slave)
使用下面的命令格式進行復制公鑰:
scp ~/.ssh/id_rsa.pub 遠程用戶名@遠程服務器IP:~/
例如:
scp ~/.ssh/id_rsa.pub hadoop@192.168.1.101:~/
上面的命令是複製文件"id_rsa.pub"到服務器IP爲"192.168.1.101"的用戶爲"hadoop"的"/home/hadoop/"下面。
下面就針對IP爲"192.168.1.101"的Slave01.Hadoop的節點進行配置。
1)把Master.Hadoop上的公鑰複製到Slave1.Hadoop上
從上圖中咱們得知,已經把文件"id_rsa.pub"傳過去了,由於並無創建起無密碼鏈接,因此在鏈接時,仍然要提示輸入輸入Slave01.Hadoop服務器用戶hadoop的密碼。爲了確保確實已經把文件傳過去了,用SecureCRT登陸Slave1.Hadoop:192.168.1.101服務器,查看"/home/hadoop/"下是否存在這個文件。
從上面得知咱們已經成功把公鑰複製過去了。
Ø追加到受權文件"authorized_keys" [注意順序]
1)把Master.Hadoop的公鑰追加到Slave1.Hadoop的受權文件"authorized_keys"中去。使用下面命令進行追加並修改"authorized_keys"文件權限:
cat ~/id_rsa.pub >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
2) 用root用戶修改"/etc/ssh/sshd_config"
具體步驟參考前面Master.Hadoop的"設置SSH配置",具體分爲兩步:第1是修改配置文件;第2是重啓SSH服務。[同理2)設置SSH配置 ]
3) 用Master.Hadoop使用SSH無密碼登陸Slave01.Hadoop
當前面的步驟設置完畢,就可使用下面命令格式進行SSH無密碼登陸了。
ssh slave01[遠程服務器IP]
從上圖咱們主要3個地方,第1個就是SSH無密碼登陸命令,第二、3個就是登陸先後"@"後面的機器名變了,由"master"變爲了"slave01",這就說明咱們已經成功實現了SSH無密碼登陸了。
最後記得把"/home/hadoop/"目錄下的"id_rsa.pub"文件刪除掉。
rm –r ~/id_rsa.pub
到此爲止,已經實現了從"master.Hadoop"到"slave01.Hadoop"SSH無密碼登陸,下面就是重複上面的步驟把剩餘的兩臺(slave02.Hadoop和slave03.Hadoop)Slave服務器進行配置。這樣,咱們就完成了"配置Master無密碼登陸全部的Slave服務器"。
Ø 配置全部Slave無密碼登陸Master
和master無密碼登陸全部slave原理同樣,就是把slave的公鑰追加到master的".ssh"文件夾下的"authorized_keys"中,記得是追加(>>)。
爲了說明狀況,咱們如今就以"slave01.Hadoop"無密碼登陸"master.Hadoop"爲例,進行一遍操做,也算是鞏固一下前面所學知識,剩餘的"Slave2.Hadoop"和"Slave3.Hadoop"就按照這個示例進行就能夠了。
首先建立"slave01.Hadoop"本身的公鑰和私鑰,並把本身的公鑰追加到"authorized_keys"文件中。用到的命令以下:
ssh-keygen -t rsa
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
同理