AWS EC2实例SSH连接报Permission denied (publickey)错误排查求助
AWS EC2 SSH公钥登录失败遗漏排查点
- 密钥对匹配校验
确认当前使用的pem文件,与EC2实例绑定的密钥对完全一致,不要混淆同名称不同区域、不同账号的密钥文件,可在EC2控制台实例详情的「安全」选项卡查看实例绑定的密钥对名称。 - 登录用户名校验
不同AMI的默认登录用户名不同,不要默认使用ubuntu:- Amazon Linux 2/2023默认用户为
ec2-user - Ubuntu默认用户为
ubuntu - CentOS默认用户为
centos - RHEL默认用户为
ec2-user或root - Debian默认用户为
admin
可在EC2实例对应的AMI说明页确认官方默认用户名。
- Amazon Linux 2/2023默认用户为
- 安全组规则校验
确认实例绑定的安全组入站规则开放了22端口,且允许你当前的公网出口IP访问,排除IP变动、仅开放VPC内网访问等配置问题。 - 实例端SSH配置与权限校验
如果你可以通过AWS控制台的EC2 Instance Connect、Session Manager登录实例,优先登录检查以下配置:- 对应用户家目录下
.ssh目录权限必须为700,家目录本身权限不能高于755 .ssh/authorized_keys文件权限必须为600,文件内的公钥内容和本地pem文件导出的公钥完全一致,导出公钥执行命令:ssh-keygen -y -f /path/to/your/key.pem- 检查
/etc/ssh/sshd_config配置,确认PubkeyAuthentication参数为yes,无AllowUsers/DenyUsers规则限制当前登录用户
- 对应用户家目录下
- 本地配置冲突校验
- 检查本地
~/.ssh/config文件,是否有对应实例域名/IP的配置项,覆盖了命令行指定的密钥、用户名参数 - 确认本地pem文件未损坏,文件首尾格式正确,无多余换行、空格
- 检查本地
- 账号归属校验
确认当前访问的EC2实例,属于你使用密钥对对应的AWS账号,排除跨账号密钥不匹配问题。
内容的提问来源于stack exchange,提问作者user3169905
相关产品推荐
相关产品推荐

