情景:A能無密碼訪問B,C,B,C不能無密碼訪問A
原因分析:使用B嘗試登錄A,不要輸入密碼,直接確認,查看A的日誌,/var/log/auth.log,發現如下:
Authentication refused: bad ownership or modes for directory /home/hadoop
這說明權限出現問題,因此需要全方位(A,B,C的所有相關權限)排查,均設置如下權限:
1. home/hadoop權限:
設置之後Authentication refused: bad ownership or modes for directory /home/hadoop問題消失
2. ~/.ssh權限(全目錄爲/home/hadoop/.ssh)
sudo chmod 755 .ssh
cd ~/.ssh
sudo chmod 644 authorized_keys
如果不放心,可以再設置:
rsa_id.pub 及authorized_keys權限一般爲644
rsa_id權限必須爲600
3. 重啓ssh
/etc/init.d/sshd restart
4. ssh-add
5. 嘗試互相登錄,看到可以互相無密碼訪問了。
注:
1. 在配置ssh無密碼訪問的過程中會出現一些warning,可以直接無視,dd的時候:
Could not open a connection to your authentication agent
可以輸入如下命令:eval `ssh-agent` 之後再輸入ssh-add,不過即使不這麼做,也是會成功的沒有影響。
2. 小編已經和隊友無數次遇到各種誰登錄不了誰的問題了,要學會查看日誌,以便排查問題,其次是權限問題對於ssh真的很重要。
終極參考:
www.bo56.com/ssh免密碼登陸設置時authentication-refused-bad-ownership-or-modes錯誤解決方法/
以上鍊接中如下文字非常有用:
sshd爲了安全,對屬主的目錄和文件權限有所要求。如果權限不對,則ssh的免密碼登陸不生效。
用戶目錄權限爲 755 或者 700,就是不能是77x。
.ssh目錄權限一般爲755或者700。
rsa_id.pub 及authorized_keys權限一般爲644
rsa_id權限必須爲600