使用VSCode连接AWS EC2实例时遇‘Permission denied(public key)’错误
解决AWS EC2 SSH连接Permission denied(public key)错误
排查与修复步骤
检查本地密钥文件权限
SSH要求密钥文件(.pem)权限必须为600,否则会被拒绝访问。执行以下命令修改权限:chmod 600 /path/to/your-key-pair.pem配置VSCode SSH的密钥路径
打开VSCode的SSH配置文件(可通过Remote SSH扩展的"Open SSH Configuration File"选项打开),确保对应Host条目添加了密钥文件路径:Host your-ec2-host HostName [你的实例公网IP] User ec2-user IdentityFile /path/to/your-key-pair.pem确认密钥对匹配
启动EC2实例时选择的密钥对,必须和本地保存的.pem文件是同一组。如果不匹配,需重新启动实例并选择正确的密钥对,或者手动将本地公钥内容添加到EC2实例的~/.ssh/authorized_keys文件中。验证安全组规则
检查EC2实例的安全组,确保已允许TCP端口22从你的本地IP地址(或临时允许0.0.0.0/0用于测试)访问。确认登录用户正确性
不同AMI的默认登录用户不同:- Amazon Linux:
ec2-user - Ubuntu:
ubuntu - CentOS:
centos
如果用错用户,也会触发权限拒绝错误,可尝试更换用户测试。
- Amazon Linux:
测试基础SSH连接
先在本地终端执行SSH命令,排除VSCode扩展的问题:ssh -i /path/to/your-key-pair.pem ec2-user@[你的实例公网IP]如果终端连接成功,再回到VSCode重新配置;如果终端也失败,优先解决底层SSH连接问题。
检查公网IP有效性
确保使用的是实例的公网IPv4地址,且实例处于运行状态。若未分配弹性IP,重启实例后公网IP会变更,需确认IP是否最新。
内容的提问来源于stack exchange,提问作者NAA
相关产品推荐
相关产品推荐

