SSH 连接报错 bad ownership or modes for directory 解决
解决方法
某天某用户突然报告说 SSH 不能登录了,经查看 /var/log/auth.log 发现报错如下:
$ cat /var/log/auth.log | grep refused
2025-11-20T01:57:53.957884+08:00 ubuntu sshd[3191378]: Authentication refused: bad ownership or modes for directory /home/ubuntu
经确认,ubuntu 的目录权限没问题:
drwxrwxr-x+ 37 ubuntu ubuntu 4096 Nov 20 02:12 /home/ubuntu
drwx------ 3 ubuntu ubuntu 4.0K Nov 20 02:00 /home/ubuntu/.ssh
-rw------- 1 ubuntu ubuntu 187 Sep 8 23:55 /home/ubuntu/.ssh/authorized_keys
但还是无法登录:
$ ssh host
ubuntu@host: Permission denied (publickey).
最终尝试这个方案成功解决:
sudo chmod go-w ~ubuntu
sudo chmod 700 ~ubuntu/.ssh
sudo chmod 600 ~ubuntu/.ssh/authorized_keys
参考:SSH:bad ownership or modes for directory の対処法
问题原因
经过排查,发现复现方式如下:
sudo usermod -aG user1 user2 # 将 user2 加入 user1 的私有组
此时 user1 使用 SSH 密钥登录服务器将会被拒绝。
原因:SSH 禁止主目录或 ~/.ssh 目录有组写入权限(私有组除外)。当你将 user2 加入 user1 的私有组时,该私有组会自动变成共享组,从而被 SSH 拒绝访问。
如果需要共享目录,建议的方法是创建专门的共享组,或者使用 ACL 控制目录写入权限。

浙公网安备 33010602011771号