无法通过SSH客户端连接AWS中的Linux实例求助
解决AWS EC2 SSH连接权限拒绝问题
我已从AWS控制台将私钥文件cloud-labs-nv.pem下载至C盘,执行以下SSH命令连接Linux实例时出现权限拒绝错误:
ssh -i "cloud-labs-nv.pem" ec2-user@ec2-3-83-91-162.compute-1.amazonaws.com ec2-user@ec2-3-83-91-162.compute-1.amazonaws.com: Permission denied (publickey,gssapi-keyex,gssapi-with-mic).
排查与解决方法
- 调整私钥文件权限:SSH对私钥权限要求严格,不能让其他用户读取。
- Windows PowerShell执行:
icacls "C:\cloud-labs-nv.pem" /inheritance:r /grant:r "$($env:USERNAME):(R)" - 若使用Git Bash/WSL,执行:
chmod 400 /mnt/c/cloud-labs-nv.pem
- Windows PowerShell执行:
- 确认实例用户名:不同EC2镜像的默认用户名不同:
- Amazon Linux/Amazon Linux 2:
ec2-user - Ubuntu:
ubuntu - CentOS:
centos
若不确定,可通过AWS控制台查看实例详情里的AMI信息,匹配对应用户名。
- Amazon Linux/Amazon Linux 2:
- 验证私钥匹配性:确保
cloud-labs-nv.pem是创建该EC2实例时指定的密钥对文件。如果密钥对不匹配,需通过AWS控制台的「会话管理器」连接实例,替换authorized_keys里的公钥,或重新创建密钥对并关联实例(需停止实例操作)。 - 检查安全组规则:确认实例所属安全组的入站规则允许TCP 22端口从你的公网IP访问,否则会出现连接失败或权限拒绝的提示。
- 使用完整私钥路径:执行SSH命令时指定完整路径,避免因当前工作目录问题找不到文件:
ssh -i "C:\cloud-labs-nv.pem" ec2-user@ec2-3-83-91-162.compute-1.amazonaws.com
内容的提问来源于stack exchange,提问作者Andrew
相关产品推荐
相关产品推荐

