在服务器上新建账户后,希望通过ssh免密或者通过证书登录系统,以提高服务器安全性。 基本流程都已经做完,生成密钥,将公钥内容复制到账户home目录中的.ssh目录下的authorized_keys 文件。同时修改sshd_config文件,禁止通过password 登陆,开启证书访问。
之后在远程服务器时提示:
Permission denied (publickey).
但之前建立的其他账户是可以通过证书访问的。
观察/var/log/auth.log,发现有如下错误:
Authentication refused: bad ownership or modes for directory /home/XXX
通过对比发现,账户的home目录权限中,组权限有写权限,是775,其他正常设置为750。
修改目录权限后可以正常访问。
进一步了解到,为什么用户的home目录的全线是775呢?尝试了下,在创建用户时,如果指定-m 自动创建home目录,则系统自动赋予750 的权限。问题原因在于是手动创建了目录导致权限分配问题。
sshd为了安全,对属主的目录和文件权限有所要求。如果权限不对,则ssh的免密码登陆不生效。
用户目录权限为 755 或者 700,就是不能是77x。
.ssh目录权限一般为755或者700。
rsa_id.pub 及authorized_keys权限一般为644
rsa_id权限必须为600
参考:
ssh免密码登陆设置时Authentication refused: bad ownership or modes错误解决方法_unix authentication refused-CSDN博客j