SSH 文件夹权限问题
问题描述
SSH 的密钥已经放入 authorized_keys 文件中,但是仍然无法登录,提示密钥没有注册。
解决方法
最终确认为文件夹权限问题,大部分能搜索到的内容为设置SSH 文件夹和authorized_keys 文件的权限。但事实上,还有一个文件夹权限也要设置。
要设置权限的文件夹有:
| 文件夹 | 示例 | 数字权限 | 字符权限 |
|---|---|---|---|
| SSH 文件夹 | ~/.ssh |
700 | drwx------ |
| authorized_keys 文件 | ~/.ssh/authorized_keys |
600 | -rw------- |
| Home 文件夹 | ~ |
最高 755 | 最高 drwxr-xr-x |
因此,命令为(在需要登录的用户下执行):
1 | |
排查过程
搜索了很多资料,大部分都是设置SSH 文件夹和authorized_keys 文件的权限,但都没有效果,最后查看了/var/log/auth.log文件,发现了以下报错信息:
1 | |
根据报错信息,发现了Home 文件夹的权限也要设置,设置后即可登录。
经过我的测试,~ 文件夹权限需要满足:
- 本用户有 execute 权限,否则无法读取到
~/.ssh文件夹,显示密钥未注册 - 本用户有 read/write 权限,否则进入终端没有任何 shell 提示
- 同组与其他用户权限内不能有 write 权限,否则同样会显示密钥未注册
参考资料
SSH 文件夹权限问题
https://nacldragon.top/2024/ssh-permission/