標籤:
前提配置:使用root登入修改設定檔:/etc/ssh/sshd_config,將其中三行的注釋去掉,如下:
然後重啟ssh服務:service sshd restart。最後退出root,以下所有操作都在hadoop使用者下進行。
主機資訊如下:
如,當前登入使用者為hadoop,主機名稱為slave.hadoop,與master.hadoop主機的網路是通暢的。
當前未配置RSA校正的情況下,用ssh串連主機是需要輸入密碼的,如下:
如,執行ssh master.hadoop後會停留在下一行等待使用者輸入master.hadoop主機hadoop使用者的登入密碼。
為避免此情況發生,進行如下操作以讓主機在ssh串連時自動驗證後登入。
首先,執行命令 ssh-keygen -t dsa 產生金鑰組,如下:
如,密鑰檔案按照預設,在主目錄/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 [email protected] ‘cat - >> ~/.ssh/authorized_keys‘,並輸入master.hadoop主機的hadoop使用者的登入密碼,即可將公開金鑰發送到master.hadoop並追加到其authorized_keys檔案中。
如,已經可以在slave.hadoop主機使用ssh無密碼登入主機master.hadoop了。
轉自: http://my.oschina.net/u/1169607/blog/175899
CentOS配置ssh無密碼登入