Windows10下连接EC2实例提示Permission denied (publickey)错误如何解决
EC2 SSH连接Permission denied (publickey)故障排查与解决
1 基础配置校验
- 确认登录用户名正确性:不同EC2镜像的默认登录用户名不同,你使用的
admin仅部分镜像支持,常见镜像对应用户名如下:- Amazon Linux 2/2023:
ec2-user - Ubuntu:
ubuntu - CentOS 7/8:
centos - RHEL:
ec2-user或root - Debian:
admin或root
- Amazon Linux 2/2023:
- 确认密钥文件匹配:当前使用的.pem文件必须是该EC2实例创建时绑定的密钥对文件,不存在错用其他实例密钥的情况
- 确认安全组规则:实例绑定的安全组入方向需放开你当前Windows设备公网IP的22端口访问,禁止放开0.0.0.0/0的22端口避免安全风险
2 Windows本地密钥文件权限调整
SSH对密钥文件权限有严格要求,Windows下权限过高会直接拒绝连接,调整步骤如下:
- 找到本地.pem文件,右键选择「属性」-「安全」选项卡,点击「高级」
- 点击「禁用继承」,选择「将继承的权限转换为此对象的显式权限」
- 删除权限列表中除了你的当前Windows登录用户之外的所有主体(包括Administrators组、Users组等)
- 仅保留当前用户的「读取」权限,取消其他所有权限的勾选
- 点击「应用」保存所有修改
3 连接命令校验
正确的SSH连接命令格式如下,注意路径有空格时必须用双引号包裹密钥路径:ssh -i "C:\Users\你的本地用户名\对应存储路径\密钥文件名.pem" 正确的登录用户名@ec2-*******-*1.us-east-2.compute.amazonaws.com
4 调试模式定位深层问题
如果以上操作完成后仍然报错,可添加-v参数开启SSH调试模式,输出详细连接日志定位问题:ssh -v -i "你的密钥文件路径" 正确的登录用户名@实例公网地址
常见调试日志对应解决方案:
日志出现
no mutual signature algorithm:实例SSH服务不支持当前客户端默认签名算法,添加参数指定算法即可:ssh -i 密钥路径 -o PubkeyAcceptedKeyTypes=+ssh-rsa 用户名@实例地址
日志出现key is too open:密钥文件权限修改不符合要求,回到第二步重新调整权限
内容的提问来源于stack exchange,提问作者Shrutika Jaiswal
相关产品推荐
相关产品推荐

