在 CentOS 上遇到 SSH 权限错误,通常是因为 SSH 对文件和目录权限非常严格,一旦权限不对,sshd 会直接拒绝使用相关密钥或配置,从而导致登录失败或被拒绝。
下面按常见原因 → 现象 → 解决方法说明。
.ssh 目录或密钥权限不对.ssh 目录权限错误要求:
chmod 700 ~/.ssh
错误示例:
drwxr-xr-x .ssh # 755 ❌
现象:
Authentication refused: bad ownership or modes for directory /home/user/.ssh
authorized_keys 权限错误要求:
chmod 600 ~/.ssh/authorized_keys
chown user:user ~/.ssh/authorized_keys
错误示例:
-rw-rw-r-- authorized_keys # 664 ❌
要求:
chmod 600 id_rsa
错误示例:
-rw-r--r-- id_rsa # 644 ❌
现象:
WARNING: UNPROTECTED PRIVATE KEY FILE!
要求:
chmod 755 /home/user
错误示例:
drwxrwxrwx /home/user # 777 ❌
日志:
Authentication refused: bad ownership or modes for home directory
/var/log/secure 中有奇怪的 permission deniedrestorecon -Rv ~/.ssh
或临时测试:
setenforce 0
/etc/ssh/sshd_configchown root:root /etc/ssh/sshd_config
chmod 600 /etc/ssh/sshd_config
/var/log/secure
journalctl -u sshd
典型错误:
Permission denied (publickey)
bad ownership or modes
Authentication refused
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
chmod 600 ~/.ssh/id_rsa
chown -R $USER:$USER ~/.ssh
restorecon -Rv ~/.ssh
你可以贴出:
ls -ld ~ ~/.ssh ~/.ssh/authorized_keys/var/log/secure 相关日志我可以直接告诉你是哪一条权限错了。