You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用SSH私钥登录提示Permission denied (publickey)如何解决

SSH公钥登录Permission denied (publickey) 解决方案

注意:调整PasswordAuthentication为no之前,请先确认公钥认证已经可以正常登录,避免修改后无法远程连接服务器。

1. 校验服务端文件权限配置

SSH对密钥相关文件权限要求极高,权限不符合会直接拒绝认证:

  • root用户的~/.ssh目录权限必须设为700,执行命令:chmod 700 /root/.ssh
  • 目录下的authorized_keys文件权限必须设为600,执行命令:chmod 600 /root/.ssh/authorized_keys
  • 确认/root根目录权限不高于755,不要给其他用户开放写权限
  • 确认本地生成的公钥内容已经完整、无多余格式错误地写入到/root/.ssh/authorized_keys文件中

2. 校验服务端sshd服务配置

  • 确认/etc/ssh/sshd_config中存在默认配置AuthorizedKeysFile .ssh/authorized_keys,未被修改为其他路径
  • 所有sshd配置修改完成后必须重启服务生效,对应系统命令如下:
    • CentOS 7+/RHEL 7+/Rocky Linux:systemctl restart sshd
    • Debian/Ubuntu 系列:systemctl restart ssh
    • CentOS 6 等旧版本:service sshd restart

3. 校验本地客户端配置

  • 本地私钥文件权限必须设为600,执行命令:chmod 600 ~/.ssh/你的私钥文件名
  • 如果你使用的不是默认的id_rsa私钥文件名,连接时需要手动指定私钥路径:ssh -i /path/to/你的私钥文件 root@服务器IP
  • 可以添加-v参数开启debug模式查看具体报错原因:ssh -v root@服务器IP,根据debug日志可以快速定位是服务端还是本地配置问题

4. 进阶日志排查(可选)

如果上述步骤都无法解决问题,可以临时修改服务端sshd_config配置,添加LogLevel DEBUG,重启sshd后重新尝试连接,查看服务端日志定位具体原因:

  • CentOS/RHEL 系列日志路径:/var/log/secure
  • Debian/Ubuntu 系列日志路径:/var/log/auth.log
    排查完成后记得将LogLevel改回默认的INFO,避免产生过多冗余日志。

内容的提问来源于stack exchange,提问作者Dimitris Kalopisis

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 17:06:05