前提配置:使用root登陸修改配置文件:/etc/ssh/sshd_config,將其中三行的註釋去掉,以下: 安全
而後重啓ssh服務:service sshd restart。最後退出root,如下全部操做都在hadoop用戶下進行。 網絡
主機信息以下: ssh
如上圖,當前登陸用戶爲hadoop,主機名爲slave.hadoop,與master.hadoop主機的網絡是通暢的。 oop
當前未配置RSA校驗的狀況下,用ssh鏈接主機是須要輸入密碼的,以下: spa
如上圖,執行ssh master.hadoop後會停留在下一行等待使用者輸入master.hadoop主機hadoop用戶的登陸密碼。 rest
爲避免此狀況發生,進行以下操做以讓主機在ssh鏈接時自動驗證後登陸。 hadoop
首先,執行命令 ssh-keygen -t dsa 生成密鑰對,以下: ast
如上圖,密鑰文件按照默認方式,在主目錄/home/hadoop下的隱藏目錄.ssh中生成,分別爲id_dsa和id_dsa.pub,後者爲公鑰,以下圖: 登錄
根據配置文件/etc/ssh/sshd_config中的AuthorizedKeysFile項的取值:.ssh/authorized_keys,公鑰須要導入到該文件中才能實現校驗,以下: 配置
至此離成功只有一步之遙了。CentOS默認新生成的文件權限爲:-rw-rw-r--,即本身和羣組用戶均可以重寫該文件,這被認爲是不夠安全的。如上圖,因爲此前個人主機上並未存在authorized_keys文件,如今因爲重定向輸出新建了該文件,所以該文件的默認權限爲-rw-rw-r--仍舊不夠安全。需把羣組中的w權限去掉。可以使用命令:chmod 644 authorized_keys。網上的資料中,都是直接chmod 600 authorized_keys,即羣組和其餘用戶連讀取文件內容的權限都沒有,固然這樣是最安全的,可是系統只要求到除了本身以外其餘全部用戶均不能改動文件就能夠了。
如上圖,slave.hadoop已經可以使用ssh無密碼登陸本機了。那麼如何讓它無密碼登陸到Master.hadoop主機中呢?固然是分發公鑰文件id_dsa.pub的內容到master.hadoop主機上了。以下圖:
如上圖,執行命令 cat ~/.ssh/id_dsa.pub | ssh hadoop@master.hadoop 'cat - >> ~/.ssh/authorized_keys',並輸入master.hadoop主機的hadoop用戶的登陸密碼,便可將公鑰發送到master.hadoop並追加到其authorized_keys文件中。
如上圖,已經能夠在slave.hadoop主機使用ssh無密碼登陸主機master.hadoop了。