最近遇到一个关于ssh登录的问题,在用户目录的~/.ssh/authorized_keys
文件中写入客户端的公钥,但登录时无法免密登录,经过查阅资料,现有以下一些信息记录
查看登录日志
在系统的/var/log/secure
文件中,可以看到用户的登录日志,里面又记录ssh不生效的原因,我遇到的问题是
Authentication refused: bad ownership or modes for directory /home/b02y
表示用户主目录的权限异常
ssh登录对于目录权限的要求
SSH非常注重安全,对目录和文件的所有权和权限有严格的要求。SSH需要用户主目录,以及该目录下的.ssh
目录和authorized_keys
文件的所有权和权限符合特定的规则,如果不符合,SSH就会拒绝密钥认证
-
用户主目录的权限应该为
755
或更严格(例如,700
)。如果主目录的权限太开放(例如,它允许组或其他用户写入),那么SSH将会拒绝密钥认证。你可以使用命令chmod 700 /home/b02y
来设定这个权限。 -
.ssh
目录的权限应该为700
。你可以使用命令chmod 700 /home/b02y/.ssh
来设定这个权限。 -
authorized_keys
文件的权限应该为600
。你可以使用命令chmod 600 /home/b02y/.ssh/authorized_keys
来设定这个权限。 -
同时,所有这些目录和文件的所有者应该都是当前用户。如果不是,你可以使用
chown
命令更改它们的所有者,例如使用chown b02y:b02y /home/b02y -R
。
Comments NOTHING