hadoop 配置集羣之間SSH無密碼登陸 (重點推薦)

配置免登錄

Ø 創建或者修改密鑰目錄權限

假設本機的IP爲“192.168.1.100”,配置免登錄的操作步驟如下:  

1. 以hadoop用戶登錄各服務器。  

2. 執行以下命令,修改“.ssh 目錄”權限。   

    chmod 755 ~/.ssh   

說明:如果“.ssh”目錄不存在,請在/home/hadoop目錄執行 mkdir ~/.ssh 命令創建。

 

 

a)        若“.ssh目錄”不存在,創建”.ssh目錄”。

mkdir ~/.ssh 

b)        修改“.ssh 目錄”權限。   

   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 [email protected]:~/

上面的命令是複製文件"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無密碼登錄命令,第2、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

 

同理

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章