SSH 文件夹权限问题

问题描述

SSH 的密钥已经放入 authorized_keys 文件中,但是仍然无法登录,提示密钥没有注册。

解决方法

最终确认为文件夹权限问题,大部分能搜索到的内容为设置SSH 文件夹authorized_keys 文件的权限。但事实上,还有一个文件夹权限也要设置。

要设置权限的文件夹有:

文件夹 示例 数字权限 字符权限
SSH 文件夹 ~/.ssh 700 drwx------
authorized_keys 文件 ~/.ssh/authorized_keys 600 -rw-------
Home 文件夹 ~ 最高 755 最高 drwxr-xr-x

因此,命令为(在需要登录的用户下执行):

1
2
3
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
chmod 755 ~

排查过程

搜索了很多资料,大部分都是设置SSH 文件夹authorized_keys 文件的权限,但都没有效果,最后查看了/var/log/auth.log文件,发现了以下报错信息:

1
May 26 10:06:02 Server sshd[10375]: Authentication refused: bad ownership or modes for directory /home/user

根据报错信息,发现了Home 文件夹的权限也要设置,设置后即可登录。

经过我的测试,~ 文件夹权限需要满足:

  1. 本用户有 execute 权限,否则无法读取到~/.ssh文件夹,显示密钥未注册
  2. 本用户有 read/write 权限,否则进入终端没有任何 shell 提示
  3. 同组与其他用户权限内不能有 write 权限,否则同样会显示密钥未注册

参考资料


SSH 文件夹权限问题
https://nacldragon.top/2024/ssh-permission/
作者
NaCl
发布于
2024年5月26日
许可协议