#######################################################################
SSH無密碼登錄即"公私鑰"認證方式:首先在客戶端上建立一對公私鑰(公鑰文件:~/.ssh/id_rsa.pub;私鑰文件:~/.ssh/id_rsa)。而後把公鑰放到服務器上(~/.ssh/authorized_keys),本身保留好私鑰.當客戶端使用ssh鏈接服務端時,服務端生成一個隨機數並用客戶端的公鑰加密,並將結果發送給客戶端,客戶端對加密結果用私鑰進行解密,將解密結果返回給服務端,服務端確認無誤後,容許客戶端鏈接。
#######################################################################vim
1.肯定系統已經安裝了SSH:
rpm –qa | grep openssh
rpm –qa | grep rsync
若是沒有安裝則使用yum安裝:
yum install ssh -->安裝SSH協議
yum install rsync -->rsync是一個遠程數據同步工具,可經過LAN/WAN快速同步多臺
service sshd restart -->啓動服務服務器
2.修改SSH配置文件以容許免密碼登錄(使用root身份):
vim /etc/ssh/sshd_config -->去掉下圖中三行的註釋
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
service sshd restart --重啓服務ssh
3.生成密鑰對(針對當前用戶):
ssh-keygen –t rsa –P '' -->直接回車生成的密鑰對:id_rsa和id_rsa.pub,默認存儲在"~/.ssh"目錄下工具
4.修改權限
chmod 700 ~/.sshoop
5.實現對自身的免密碼登錄:
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys (把本身的公鑰添加到本身的被受權Key中,表示:當本身做爲客戶端和服務器實現自鏈接時免密碼)
chmod 600 ~/.ssh/authorized_keys加密
*單點客戶機和服務器的免密碼登錄即如上所述,若是集羣中的機器須要兩兩之間實現免密碼登錄(如Hadoop集羣),原理相同,每臺機器實行前四個步驟以後,再把本身的公鑰添加到集羣中全部機器的authorized_keys文件中便可rest
*還有個注意點就是,即使是配置了SSH免登陸,在第一次鏈接的時候依然會須要密碼,能夠經過.ssh/known_hosts文件來查看已經被本機識別過的host目標(因此好比在作hadoop集羣的時候,將全部機器的公鑰都放置在Master機的臨時文件中,而後經過Master執行scp命令將該臨時文件複製到包括自身在內的集羣的全部機器.ssh/authorized_keys,這樣順帶就把全部的host都添加到了Master機.ssh/known_hosts文件中,此時,全部Slaves和Master之間已經能夠免密碼登錄,可是Slaves之間的第一次訪問仍是須要密碼,所以,咱們再把Master中的known_hosts文件複製到集羣全部機器中,至此,集羣中的全部機器之間完成真正的兩兩之間SSH免登錄)hadoop