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

EL9系统SSH Post-KEX阶段用户密钥验证失败(mm_answer_keyverify报错)的技术问询及流程咨询

EL9系统SSH Post-KEX阶段用户密钥验证失败(mm_answer_keyverify报错)的技术问询及流程咨询

各位大佬好,我现在碰到一个棘手的SSH密钥验证问题,想请教下Post-KEX阶段用户密钥验证的具体交互逻辑,尤其是mm_answer_keyverify环节的细节,同时也希望结合我的场景定位问题根源。

核心诉求

我需要一个通俗易懂但有技术深度的解释(类似ELI5但别太小白,也别直接甩看不懂的代码),搞清楚OpenSSH在Post-KEX阶段用户密钥验证的双方动作:

  • 两端具体做了哪些操作?谁发起请求、谁执行验证?
  • 是否是双方对密钥签名后比对签名?
  • 是不是用本地签名算法加密内容后再做一致性校验?
  • 重点想明白mm_answer_keyverify环节,在authorized_keys检查通过后,到底是怎么验证用户密钥的?

我的场景与问题现象

我们正在把旧的EL7系统替换成EL9系统,全程用的是相同的RSA密钥、相同用户、NFS挂载的同一份home目录文件,但从其他服务器连接EL9时出现了诡异的问题:

  • EL7上一切正常,但EL9上:Workday连接失败,AIX系统用curl+sftp连接失败,但AIX直接用sftp连接却完全正常。
  • 日志显示主机密钥、KEX、authorized_keys检查都通过了,问题卡在用户密钥验证阶段:
    失败日志片段:
    debug1: /home/USER/.ssh/authorized_keys:12: matching key found: RSA SHA256:aGrK...
    Accepted key RSA SHA256:aGrK... found at /home/USER/.ssh/authorized_keys:12
    debug3: mm_answer_keyallowed: publickey authentication: RSA key is allowed
    debug3: mm_answer_keyverify: publickey RSA signature unverified: error in libcrypto
    
  • 我们临时启用了LEGACY加密策略,但问题依旧。我个人猜测是两端算法兼容性问题:一端还在用ssh-rsa算法,另一端用的是兼容模式(比如请求ssh-rsa但实际用rsa-sha256-512),但这只是我的猜测,对底层细节不太熟。

关键日志对比

同EL9服务器上,成功连接的日志:

debug3: userauth_pubkey: have rsa-sha2-512 signature for RSA SHA256:aGrK.....

失败连接的日志:

debug3: userauth_pubkey: have ssh-rsa signature for RSA SHA256:aGrK.....

最明显的区别就是签名算法,但我搞不懂为什么会出现这种差异,难道是客户端指定了服务器要用的算法?

希望各位大佬能给我一些思路或者细节解释,谢谢!

备注:内容来源于stack exchange,提问作者zenfridge

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.20 06:38:04