使用Terraform部署AWS EC2实例后SSH密钥连接失败求助
解决EC2 SSH连接Permission denied问题的排查步骤
以下是你可能遗漏的几个关键排查点:
默认用户名错误
你使用的AMIami-830c94e3是Amazon Linux系统,它的默认SSH用户名是ec2-user,而非ubuntu。尝试使用正确的用户名连接:ssh -i terraform_ec2_key ec2-user@ec2-54-202-8-184.us-west-2.compute.amazonaws.com安全组入站规则的源范围限制
即使开放了22端口,如果入站规则的源仅设置为特定IP,而你的当前公网IP不在允许列表内,也会被拒绝。- 登录AWS控制台,找到该实例关联的安全组
- 检查22端口的入站规则,确认源包含你当前的公网IP(可通过
curl ifconfig.me获取本地公网IP)
验证密钥对与实例的绑定关系
确认EC2实例确实绑定了正确的密钥对:- 在EC2实例详情页查看"密钥对名称"字段,确认是
terraform_ec2_key - 或通过AWS CLI验证:
aws ec2 describe-instances --instance-ids <你的实例ID> --query 'Reservations[0].Instances[0].KeyName'
- 在EC2实例详情页查看"密钥对名称"字段,确认是
检查公钥文件的有效性
确保本地的terraform_ec2_key.pub内容正确且与AWS端的密钥对一致:- 打开本地公钥文件,确认格式为标准RSA公钥(开头为
ssh-rsa AAAAB3NzaC1yc2E...) - 在AWS控制台的密钥对详情页,对比公钥内容是否与本地文件完全一致
- 打开本地公钥文件,确认格式为标准RSA公钥(开头为
确认SSH命令的密钥路径
如果执行SSH命令时不在密钥文件所在目录,需要指定完整路径:ssh -i /绝对路径/terraform_ec2_key ec2-user@ec2-54-202-8-184.us-west-2.compute.amazonaws.com
内容的提问来源于stack exchange,提问作者Neetesshhr
相关产品推荐
相关产品推荐

