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

Mac SSH连接CentOS 6 EC2实例公钥认证失败问题排查

问题根因
  • 初始使用的ed25519密钥完全不被服务端支持:服务端运行的是CentOS 6自带的OpenSSH 5.3,ed25519算法是OpenSSH 6.5版本才新增支持的,服务端根本无法识别该类型公钥,直接拒绝认证。
  • 后续更换RSA密钥仍连接失败,是客户端与服务端的默认算法策略不兼容导致:本地使用的OpenSSH 8.1版本默认禁用了基于SHA1哈希的ssh-rsa签名算法(存在碰撞安全风险),但OpenSSH 5.3版本不支持更新的rsa-sha2-256/rsa-sha2-512签名算法,仅支持ssh-rsa,因此即使本地使用RSA密钥,客户端默认不会发送服务端能识别的认证签名,最终返回公钥认证拒绝。
  • 新启动EC2实例同样报错,是因为自定义AMI继承了原实例的CentOS 6 + OpenSSH 5.3环境,问题完全一致,和IP白名单、私钥本地权限无关。
解决方案
  1. 修改本地~/.ssh/config配置,针对这两个老版本主机单独添加兼容配置,不要做全局修改避免影响其他服务器连接安全性,配置参考如下:
Host never_dev
  HostName neverstaydev.com
  User neverst
  IdentityFile ~/.ssh/你生成的RSA私钥本地路径
  # 兼容OpenSSH 5.3的算法配置
  HostkeyAlgorithms +ssh-rsa
  PubkeyAcceptedKeyTypes +ssh-rsa
  KexAlgorithms +diffie-hellman-group-exchange-sha1,diffie-hellman-group14-sha1

Host beta
  HostName 12.18.125.53
  User neverst
  IdentityFile ~/.ssh/你生成的RSA私钥本地路径
  # 兼容OpenSSH 5.3的算法配置
  HostkeyAlgorithms +ssh-rsa
  PubkeyAcceptedKeyTypes +ssh-rsa
  KexAlgorithms +diffie-hellman-group-exchange-sha1,diffie-hellman-group14-sha1

注意:OpenSSH 8.1版本中配置公钥允许算法的参数名为PubkeyAcceptedKeyTypes,8.5之后版本才改名为PubkeyAcceptedAlgorithms,不要写错参数名否则配置不生效。

  1. 联系运维核对服务端公钥配置:

    • 确认~neverst/.ssh/authorized_keys文件中存储的是新生成的RSA公钥(公钥行开头为ssh-rsa,不是之前的ssh-ed25519),公钥内容完整无换行、缺字。
    • 确认.ssh目录权限为700,authorized_keys文件权限为600,两个对象的属主均为neverst用户,避免共享账号场景下运维用root上传公钥导致权限异常、服务端无法读取公钥。
  2. 配置完成后直接执行连接命令即可,无需调整私钥本地权限,之前设置的0400、0600权限均符合SSH安全要求。如果仍连接失败,执行ssh -vv never_dev开启详细调试日志,查看日志中是否出现RSA密钥的Offer记录、服务端是否返回密钥拒绝提示,针对性排查公钥匹配问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.30 14:18:11