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

EC2 Ubuntu实例复用密钥对PuTTY公钥认证错误排查

前置说明:本次报错信息通用性极强,几乎无法判定该问题为已有重复问题,本次属于较为细分的特殊场景,请不要误将其标记为重复问题。

问题背景
  • 现有2台运行Ubuntu系统的EC2实例:第一台创建于6个月前,运行状态、PuTTY连接均正常;第二台为当日新建,创建时选择复用第一台绑定的同一keypair
  • 两台实例位于同一可用区但归属不同基础VPC,密钥对直接从EC2控制台密钥对列表选择,按平台规则密钥对支持跨VPC生效
  • 两台实例默认登录用户均为ubuntu,连接操作时直接克隆已保存的第一台实例的PuTTY配置,仅修改目标实例公网IP后发起连接,收到如下报错:
PuTTY Fatal Error: Disconnected: No supported authentication methods available (server sent: publickey)
  • 初步排查阶段已确认:登录用户名ubuntu填写正确、控制台显示的实例绑定密钥对名称与使用的私钥匹配,按密钥对设计逻辑同一.ppk文件可对所有绑定该密钥对的实例生效,最初推测为平台未将密钥对正确关联到新实例
  • 复现验证:销毁原异常实例后重新创建新实例,导入另一把完全不同的公钥,使用其匹配的.ppk文件连接,仍然触发相同的认证报错
该问题的可能触发原因
  • PuTTY本地配置错误
    • 克隆旧配置时私钥加载路径失效,或配置中误关闭了公钥认证选项、开启了服务端不支持的认证方式
    • 若使用Pageant管理私钥但未在Pageant中加载对应实例的私钥、私钥passphrase输入错误,会直接触发公钥认证失败
    • 本地PuTTY版本过旧,不支持新实例OpenSSH服务端默认启用的公钥算法:新版本Ubuntu默认禁用老旧的ssh-rsa算法,0.75以下版本的PuTTY未适配该变更,会导致公钥协商阶段直接失败
  • 实例启动阶段公钥注入失败
    • 实例启动时cloud-init服务执行异常,未成功将控制台配置的公钥写入/home/ubuntu/.ssh/authorized_keys文件。常见触发场景包括:加密根卷未授予EC2服务对应的KMS密钥访问权限、实例启动时访问元数据服务超时、使用的自定义镜像内置cloud-init配置损坏
    • 新实例所用镜像存在SSH配置或权限异常:若使用第三方修改的Ubuntu镜像,可能存在默认SSH配置篡改,或ubuntu用户家目录、.ssh目录、authorized_keys文件权限不符合SSH安全校验要求(家目录权限需为755、.ssh目录权限需为700、authorized_keys文件权限需为600,权限不符合时sshd会直接拒绝读取公钥文件,无额外报错提示)
  • 网络链路拦截导致认证失败
    • 新实例所属VPC的安全组、网络ACL存在规则拦截SSH会话相关报文,或VPC端点、路由配置错误导致实例元数据服务访问失败,公钥无法正常注入
    • 本地到新实例公网IP的链路中存在透明代理、流量清洗设备,篡改或丢弃了SSH公钥协商阶段的报文,导致认证流程中断
  • 实例侧SSH服务配置异常
    • 新实例启动时sshd服务加载了错误配置,公钥认证选项被设为关闭,或配置了不允许ubuntu用户通过公钥方式登录的规则

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 22:12:25