問題描述
在主機A上用ssh-keygen生成密鑰對后,用ssh-copy-id命令將公鑰成功copy到主機B上后,測試從A免密登錄B,但是依舊需要輸入主機B的密碼后才能登錄。
出現此錯誤的原因
如果authorized_keys文件、$HOME/.ssh目錄或$HOME目錄讓本用戶之外的其他任何用戶有寫權限,那么sshd都會拒絕使用~/.ssh/authorized_keys文件中的key來進行認證的,防止authorized_keys或者$HOME下的文件被其他用戶篡改。
排查過程
- 檢查~/.ssh/authorized_keys的權限是否是
rw-------
;即是否是600(也可為700)。 - 檢查~/.ssh目錄的權限是否為
rwx------
或者rwxr-xr-x
,即是否為700
或者755
(默認是700);也即一定不能給當前用戶的同組用戶和其他用戶賦予寫權限。