Linux容器多用户SSH登录时/home目录需如何配置权限?
问题根因
SSH公钥认证流程会校验用户家目录、.ssh目录、公钥文件路径的可访问性,你当前的/home目录权限为drwx------,仅目录属主拥有读、写、遍历(执行)权限,其他用户完全无法进入/home目录,自然读不到自己家目录下的认证公钥,触发Permission denied (publickey)错误。
之前切换/home属主时单用户可登录,本质就是仅属主拿到了/home的遍历权限,其他用户依然被挡在/home目录外。
修复操作
- 先把
/home目录修正为Linux系统标准归属与权限:
755权限意味着所有用户都拥有chown root:root /home chmod 755 /home/home目录的遍历、读权限,可以正常进入自己的家目录子路径。 - 逐用户校验家目录、SSH相关路径的权限,SSH对这些路径有严格安全校验,权限不符合要求会直接拒绝认证:
- 用户家目录属主必须为用户自身,权限不得高于755,禁止其他用户可写
- 用户家目录下的
.ssh目录属主必须为用户自身,权限必须为700 .ssh目录下的authorized_keys公钥文件属主必须为用户自身,权限必须为600
对应执行命令如下:
# 修复user1路径权限 chown -R user1:user1 /home/user1 chmod 755 /home/user1 chmod 700 /home/user1/.ssh chmod 600 /home/user1/.ssh/authorized_keys # 修复user2路径权限 chown -R user2:user2 /home/user2 chmod 755 /home/user2 chmod 700 /home/user2/.ssh chmod 600 /home/user2/.ssh/authorized_keys - 重启容器内的sshd服务后,两个用户即可正常通过公钥认证登录。
内容的提问来源于stack exchange,提问作者user5580578
相关产品推荐
相关产品推荐

