MacOS连接AWS EC2 Amazon Linux2实例报Permission denied公钥认证错误
问题根因
你的SSH链路网络层面连通正常,问题出在公钥认证环节。从调试日志可见,SSH进程未加载你指定的xxx.pem密钥,仅尝试了~/.ssh路径下的默认密钥文件(id_rsa、id_dsa等),这些默认密钥均不存在,因此认证失败。
排查解决步骤
- 检查密钥文件路径是否正确
如果你执行SSH命令的当前工作目录下没有存放xxx.pem,需要填写密钥的绝对路径,命令示例:
可以先执行ssh -i /Users/user1/Downloads/xxx.pem ec2-user@54.180.146.106ls <密钥文件路径>确认文件真实存在,再运行SSH命令。 - 确认密钥与EC2实例匹配
登录AWS EC2控制台,查看该实例详情页的「密钥对名称」字段,确认和你使用的xxx.pem属于同一个密钥对,没有下载错其他密钥的pem文件,也没有修改过pem文件的原始内容。 - 排查实例侧权限配置
如果你昨日登录后修改过ec2-user的家目录权限、.ssh目录权限或authorized_keys文件权限,会触发公钥认证的权限校验失败,要求的权限规则如下:/home/ec2-user目录权限:755,属主为ec2-user:ec2-user/home/ec2-user/.ssh目录权限:700,属主为ec2-user:ec2-user/home/ec2-user/.ssh/authorized_keys文件权限:600,属主为ec2-user:ec2-user
若当前无法SSH登录,可以通过EC2控制台的「会话管理器」(需提前配置对应IAM权限)登录实例修改权限,或者将实例的根卷卸载后挂载到其他正常的EC2实例上调整文件权限。
- 确认登录用户名正确
Amazon Linux 2默认登录用户为ec2-user,如果你后续自行创建过其他用户,需要替换为对应的用户名登录。
内容的提问来源于stack exchange,提问作者Joon An
相关产品推荐
相关产品推荐

