无法SSH连接AWS ECS实例:Permission denied (publickey)求助
解决AWS ECS实例SSH Permission denied (publickey)问题
从你提供的SSH debug日志来看,核心问题是:SSH客户端尝试加载默认路径下的密钥文件(如/home/ec2-user/.ssh/id_rsa)但全部未找到,且没有从ssh agent获取到可用密钥(日志中无Offering public key: ... from agent相关输出)。结合你的情况,按以下步骤排查:
确认ssh agent已正确加载密钥
运行ssh-add -l查看已加载的公钥指纹,确认你的ECS连接密钥在列表中。如果没有,执行ssh-add /绝对路径/到你的私钥文件重新添加,务必指定完整路径,不要依赖默认文件名。强制指定密钥文件连接测试
绕开ssh agent,直接用指定密钥发起连接,排除agent异常:ssh -i /绝对路径/到你的私钥文件 ec2-user@10.10.0.168检查本地密钥文件权限
SSH对密钥权限要求严格,权限过宽会被拒绝:chmod 700 ~/.ssh chmod 600 /绝对路径/到你的私钥文件检查ECS实例端的authorized_keys配置
如果本地没问题,大概率是实例端的公钥配置异常:- 确认实例中
/home/ec2-user/.ssh/authorized_keys文件存在,且包含你的公钥内容 - 检查文件权限:
authorized_keys必须为600,.ssh文件夹必须为700,所有者为ec2-user - 若无法SSH,可通过AWS Systems Manager Session Manager(已开启的话)直接连接实例检查上述内容
- 确认实例中
排查SSH客户端配置
查看~/.ssh/config或/etc/ssh/ssh_config,确认是否针对该主机配置了错误的用户、密钥路径,或者禁用了ssh agent功能。
内容的提问来源于stack exchange,提问作者elabmot
相关产品推荐
相关产品推荐

