问题描述
在主机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);也即一定不能给当前用户的同组用户和其他用户赋予写权限。