Ubuntu下搭建hadoop出现Permission denied (publickey,password)的问题
最近在利用實驗室的服務器搭建hadoop,一邊看網上教程,一邊動手自己搭建,發現還是容易碰到很多問題
問題來源
1. 老師在一臺電腦新建了一個ubuntu虛擬機,然后配置好后直接使用克隆的方式,在本地復制了多臺虛擬機。
2. 我在實驗室中直接建好多臺虛擬機,而且采用的是每個手動配置的方式
3. 在搭建hadoop過程中需要使用SSH的RSA認證方法使集群中的主機省去密碼登錄
4. 首先需要安裝open-ssh服務sudo apt-get install openssh-server
5. 在本機生成密鑰對`ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
6. 將公鑰放到自動認證的xx文件中(我也不太懂) cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
問題現象
- 使用ssh登錄本機沒問題即ssh localhost后輸入一次yes再次登錄本機的時候不需要輸入什么就可以登錄
- 使用ssh登錄其他主機的時候需要輸入主機的非root用戶的密碼才能連接(出現Permission denied (publickey,password).)
- 如果無法使用ssh無密碼連接其他節點的主機,那么在啟動hadoop的時候會出現的輸入其他主機的密碼,即使正確輸入也無法認證
解決辦法:使用scp命令將hadoop核心主機(namenode)的authorized_keys文件放到其他主機的.ssh文件夾下,可使用命令“`scp ~/.ssh/authorized_keys aaa@ServerIP:~/.ssh/
“`注:此命令需要輸入帳號aaa的密碼,最好保證各個主機的用戶名是aaa(相同),因為用rsa產生密鑰對的時候應該是和主機的用戶名有關,我也是根據<<網絡安全>>這門課想出的這個問題
成功后在核心主機使用ssh 加其他主機的ip就可以實現無密碼登錄,然后就可以使用
start-all.sh --config xxx/xxx/hadoop-x.x.x/etc/xxx/啟動了,如下圖
PS:有時停止hadoop,斷開主機ssh連接后(我是用x-shell連接主機的),再次啟動hadoop的時候會出現下圖
查看其他主機的目錄發現
將此類型的主機使用命令ecryptfs-mount-private輸入帳號的密碼即可
PS:scp需要使用root用戶時,無法正確認證
因為ubuntu默認下關閉了root用戶的遠程ssh登錄,需要在遠程主機的 /etc/ssh/sshd_config文件中將PermitRootLogin 改為yes(無論后面是no還是其他單詞)
重啟ssh服務sudo /etc/init.d/ssh restart
就可以使用scp 向遠程主機的root權限下的目錄下寫入文件
總結
以上是生活随笔為你收集整理的Ubuntu下搭建hadoop出现Permission denied (publickey,password)的问题的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【推荐系统】基于协同过滤的图书推荐系统
- 下一篇: Shell - mkdir