linux 下hadoop的免密登入
分發~/.ssh/authorized_keys
Authorized_keys的作用是可以免密碼地使用SSH跨節點相互訪問
生成金鑰
在NameNode上使用ssh-keygen命令生成金鑰對
ssh #先執行一下ssh命令
ssh-keygen
生成的金鑰對在~/.ssh中,分別是:
id_rsa #私鑰
id_rsa.pub #公鑰~
授權公鑰
在NameNode上使用cat命令將公鑰追加到授權檔案,授權後可以免密碼訪問
cat id_rsa.pub >> authorized_keys (要先進入~/.ssh)
加入已知主機(生成known_hosts檔案)
在NameNode上使用ssh slave1訪問DataNode,輸入yes
成功後使用ssh master訪問NameNode,輸入yes
known_hosts檔案記錄了使用者已經yes過的公鑰指紋,以後不用再反覆yes了
配置SSH關閉金鑰檢查
touch config
在.ssh檔案中建立config檔案,寫入以下內容
Host *
StrictHostKeyChecking no
設定後,以後就不會詢問yes了
分發.ssh
將NameNode上的~/.ssh複製到所有DataNode上,讓整個叢集使用同一對金鑰
並且已經授權
scp -r ~/.ssh [email protected]slaveXX:~/
注意事項(一般情況下是正常的,請直接跳過這一小節)
SSH相關的檔案對許可權比較敏感,其它使用者不能有寫許可權
如果遇到總是需要密碼才能登入的問題可以按下面檢查並更改許可權:
~ #許可權700
~/.ssh #許可權700
~/.ssh/id_rsa #許可權600
~/.ssh/id_rsa.pub #許可權600
~/.ssh/known_hosts #許可權600
~/.ssh/authorized_keys #許可權600
設定許可權
chmod 600 ~/.ssh/authorized_keys