ssh-permission-denied

SSH 公钥登录失败的定位与修复

现象

ssh 报 Permission denied (publickey),密码登录可能正常但公钥不行。常见于权限、属主、sshd 配置或 SELinux 上下文。

快速定位

ssh -vvv user@host
ls -ld ~ ~/.ssh
ls -l ~/.ssh/authorized_keys
stat -c '%U %G %a %n' ~/.ssh ~/.ssh/authorized_keys
sshd -T | grep -E 'pubkey|authorizedkeys|permitroot|passwordauth'
journalctl -u sshd --since '10 min ago'
ls -Z ~/.ssh/authorized_keys

常见根因

  1. .ssh 或 authorized_keys 权限过宽(应为 700/600)。
  2. 文件属主不是登录用户。
  3. 公钥没有正确追加,或复制时换行/截断。
  4. sshd 禁用了公钥、指定了错误的 AuthorizedKeysFile。
  5. 家目录权限过宽,或 SELinux 上下文不对。
  6. 登录用户 shell 被禁用,或 AllowUsers/Match 限制。

修复

相关命令