Putty server refused our key的三種原因和解決方法

上一篇博文介紹了使用Putty免密碼登錄,我後面試了另一臺虛擬機,結果putty顯示錯誤server refused our key(在linux下則表現爲仍需要輸入密碼),搜索了下,很多人都遇到這個問題,大致有三種原因:

1、.ssh文件夾權限錯

.ssh 以及其父文件夾(root爲/root,普通用戶爲Home目錄)都應該設置爲只有該用戶可寫(比如700)。

以下爲原因:

ssh服務器的key方式登錄對權限要求嚴格。對於客戶端: 私鑰必須爲600權限或者更嚴格權限(400), 一旦其他用戶可讀, 私鑰就不起作用(如640), 表現爲系統認爲不存在私鑰
對於服務器端: 要求必須公鑰其他用戶不可寫, 一旦其他用戶可寫(如660), 就無法用key登錄, 表現爲:Permission denied (publickey).
同時要求.ssh目錄其他用戶不可寫,一旦其他用戶可寫(如770), 就無法使用key登錄, 表現爲:Permission denied (publickey).


2、SElinux導致

密鑰文件不能通過SElinux認證,解決方法如下:

# restorecon -R -v /home #root用戶爲/root

我遇到的就是這種情況,找了好久還找到是這個原因,因爲是新裝的虛擬機,SElinux還沒關閉。

這篇博文詳細得說明了原因:http://www.toxingwang.com/linux-unix/linux-basic/846.html


3、sshd配置不正確

正確配置方法如下:

/etc/ssh/sshd_config 1、找到 #StrictModes yes 改成 StrictModes no (去掉註釋後改成 no) 2、找到 #PubkeyAuthentication yes 改成 PubkeyAuthentication yes (去掉註釋) 3、找到 #AuthorizedKeysFile .ssh/authorized_keys 改成 AuthorizedKeysFile .ssh/authorized_keys (去掉註釋) 4、保存 5、/etc/rc.d/init.d/sshd reload 重新加載


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章