You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

连接云实例时遇Permission denied(publickey,gssapi-keyex,gssapi-with-mic)错误求助

解决SSH登录EC2实例时的Permission denied (publickey)错误

以下是针对这个问题的逐一排查和解决步骤:

  • 检查密钥文件权限
    Linux系统对SSH密钥文件权限要求严格,权限过宽会被SSH客户端直接拒绝。执行以下命令修正权限:

    chmod 600 vprofile-prod-key.pem
    

    同时确保密钥所在的父目录权限不超过755,比如密钥放在~/.ssh目录下的话,执行:

    chmod 755 ~/.ssh
    
  • 确认登录用户名是否正确
    EC2不同操作系统镜像的默认用户名不同:

    • Amazon Linux/Amazon Linux 2:ec2-user
    • Ubuntu:ubuntu
    • CentOS:centos
    • RHEL:ec2-user或root
      如果实例是Ubuntu系统,用ec2-user登录必然失败,先核对实例的操作系统类型。
  • 验证公钥是否已添加到实例的authorized_keys
    先从本地密钥导出公钥:

    ssh-keygen -y -f vprofile-prod-key.pem > public_key.pub
    

    确保该公钥已添加到实例的/home/[用户名]/.ssh/authorized_keys文件中。如果无法通过SSH登录,可以通过EC2控制台的连接功能,选择“会话管理器”(需实例满足SSM条件)或“挂载卷”方式修改该文件。

  • 检查实例安全组规则
    确认实例所属的安全组入站规则允许SSH(TCP端口22)从你的公网IP地址访问。可以临时添加一条允许0.0.0.0/0的规则进行测试(测试完成后务必删除,避免安全风险)。

  • 启用SSH调试模式定位问题
    执行带调试参数的SSH命令,查看详细交互日志:

    ssh -v -i vprofile-prod-key.pem ec2-user@myipaddress
    

    重点关注日志中关于公钥提交、服务器响应的内容:

    • 如果日志显示“Offering public key: ...”但服务器返回拒绝,大概率是实例端authorized_keys配置错误或密钥不匹配;
    • 如果日志显示找不到密钥文件,检查密钥路径是否正确、权限是否合规。
  • 检查实例的SSH服务配置
    若能通过其他方式登录实例,检查/etc/ssh/sshd_config文件:

    • 确保PubkeyAuthentication yes已启用;
    • 确认AuthorizedKeysFile路径指向正确(默认是.ssh/authorized_keys);
      修改配置后重启SSH服务:
    sudo systemctl restart sshd
    
  • 确认密钥对与实例匹配
    登录EC2控制台,查看实例详情中的“密钥对名称”,确保和你使用的vprofile-prod-key.pem对应的密钥对完全一致。如果实例启动时使用的是其他密钥对,当前密钥无法用于登录。

内容的提问来源于stack exchange,提问作者Moladejo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.13 14:35:09