Permission denied (publickey,gssapi-keyex,gssapi-with-mic)
當出現警告的時候,恭喜你,你已經離成功很近了。
遠程主機這裏設為slave2,用戶為Hadoop。
本地主機設為slave1
以下都是在遠程主機slave2上的配置,使得slave1可以免密碼連接到slave2上。如果想免密碼互聯,原理一樣的,在slave1上也這麽配置即可!
(1)首先:配置ssh服務器配置文件。
在root 用戶下才能配置。
vi /etc/ssh/sshd_config
權限設為no:
#PermitRootLogin yes
#UsePAM yes
#PasswordAuthentication yes
如果前面有# 號,將#號去掉,之後將yes修改為no。
修改之後為:
PermitRootLogin no
UsePAM no
PasswordAuthentication no
權限設為yes:
RSAAuthentication yes
PubkeyAuthentication yes
(2)重啟sshd服務
systemctl restart sshd.service
systemctl status sshd.service #查看ssh服務的狀態
#systemctl start sshd.service #開啟ssh服務
#sytemctl enable sshd.service #ssh服務隨開機啟動,還有個disabled
#systemctl stop sshd.ervice #停止
正常情況下應該是Active:active(running)
(3)修改文件夾以及文件的權限。
#chmod 700 /home/Hadoop/.ssh
#chmod 644 /home/Hadoop/.ssh/authorized_keys
(4)在slave1上進行測試
ssh slave2
上面就是完整的解決這個問題的辦法!
總結:出現這種警告,我覺得最終的原因是文件夾以及文件的讀寫權限的問題。
建議首先修改/home/Hadoop/.ssh以及/home/Hadoop/.ssh/authorized_keys的權限。
註意,還有可能是禁用了root登錄出現這種情況。
當切換到普通用戶—Hadoop之後就又能登錄了。
即使在/etc/ssh/sshd_config 中配置了PermitRootLogin 為yes,還是不能用slave1的root用戶直接無密碼連接到slave2上。只要切換到會普通用戶就可以了,不影響使用。畢竟root用戶在Linux系統中如此特殊和重要。
Done!
Permission denied (publickey,gssapi-keyex,gssapi-with-mic)