kmc 报错 get ciphertext len failed

问题描述

一台生产环境出现修改用户 17 密码失败,以及 test user2 password 失败

查看日志报错无法获取 KMC 密钥长度,以及 KMC not running

2026-06-12 01:16:47.957878 account ERROR: [C](65535): [WSEC_CBB][][99] (UTC) 2026-06-12 01:16:47 KMC not running.
2026-06-12 01:16:47.958322 account ERROR: [C](65535): [WSEC_CBB][][769] (UTC) 2026-06-12 01:16:47 [SDP] GetWorkKeyByIDHash get WK failed 155.
2026-06-12 01:16:47.958663 account ERROR: [C](65535): [WSEC_CBB][][907] (UTC) 2026-06-12 01:16:47 [SDP] SdpDecryptDataV2 get WK failed 155.
2026-06-12 01:16:47.959176 account ERROR: kmc_client.lua(46): decrypt failed, decrypt failed, ret = 155
2026-06-12 01:16:47.964385 iam ERROR: engine.lua(27): BMC.Error.Unknow: pack failed, error: pack binary failed: unknow field CompletionCode.
2026-06-12 01:16:49.036113 account ERROR: [C](65535): [WSEC_CBB][][99] (UTC) 2026-06-12 01:16:49 KMC not running.
2026-06-12 01:16:49.036587 account ERROR: [C](65535): [WSEC_CBB][][769] (UTC) 2026-06-12 01:16:49 [SDP] GetWorkKeyByIDHash get WK failed 155.
2026-06-12 01:16:49.036946 account ERROR: [C](65535): [WSEC_CBB][][907] (UTC) 2026-06-12 01:16:49 [SDP] SdpDecryptDataV2 get WK failed 155.
2026-06-12 01:16:49.037460 account ERROR: kmc_client.lua(46): decrypt failed, decrypt failed, ret = 155
2026-06-12 01:16:49.042154 iam ERROR: engine.lua(27): BMC.Error.Unknow: pack failed, error: pack binary failed: unknow field CompletionCode.
2026-06-12 01:16:50.129947 account ERROR: [C](65535): [WSEC_CBB][][99] (UTC) 2026-06-12 01:16:50 KMC not running.
2026-06-12 01:16:50.130335 account ERROR: [C](65535): [WSEC_CBB][][769] (UTC) 2026-06-12 01:16:50 [SDP] GetWorkKeyByIDHash get WK failed 155.
2026-06-12 01:16:50.131875 account ERROR: [C](65535): [WSEC_CBB][][907] (UTC) 2026-06-12 01:16:50 [SDP] SdpDecryptDataV2 get WK failed 155.
2026-06-12 01:16:50.132529 account ERROR: kmc_client.lua(46): decrypt failed, decrypt failed, ret = 155
2026-06-12 01:16:50.136985 iam ERROR: engine.lua(27): BMC.Error.Unknow: pack failed, error: pack binary failed: unknow field CompletionCode.
2026-06-12 01:16:51.209979 account ERROR: [C](65535): [WSEC_CBB][][99] (UTC) 2026-06-12 01:16:51 KMC not running.
2026-06-12 01:16:51.210381 account ERROR: [C](65535): [WSEC_CBB][][769] (UTC) 2026-06-12 01:16:51 [SDP] GetWorkKeyByIDHash get WK failed 155.
2026-06-12 01:16:51.210831 account ERROR: [C](65535): [WSEC_CBB][][907] (UTC) 2026-06-12 01:16:51 [SDP] SdpDecryptDataV2 get WK failed 155.
2026-06-12 01:16:51.212136 account ERROR: kmc_client.lua(46): decrypt failed, decrypt failed, ret = 155
2026-06-12 01:16:51.216636 iam ERROR: engine.lua(27): BMC.Error.Unknow: pack failed, error: pack binary failed: unknow field CompletionCode.
2026-06-12 01:16:52.304734 account ERROR: [C](65535): [WSEC_CBB][][99] (UTC) 2026-06-12 01:16:52 KMC not running.
2026-06-12 01:16:52.305188 account ERROR: [C](65535): [WSEC_CBB][][769] (UTC) 2026-06-12 01:16:52 [SDP] GetWorkKeyByIDHash get WK failed 155.
2026-06-12 01:16:52.305716 account ERROR: [C](65535): [WSEC_CBB][][907] (UTC) 2026-06-12 01:16:52 [SDP] SdpDecryptDataV2 get WK failed 155.
2026-06-12 01:16:52.306294 account ERROR: kmc_client.lua(46): decrypt failed, decrypt failed, ret = 155
2026-06-12 01:16:52.310465 iam ERROR: engine.lua(27): BMC.Error.Unknow: pack failed, error: pack binary failed: unknow field CompletionCode.
026-06-12 01:18:57.975368 snmp NOTICE: key_client.lua(91): WsecInitialize sucess
2026-06-12 01:18:57.975621 snmp NOTICE: kmc.c(124): initialize the agent of kmc successfully.
2026-06-12 01:19:01.098779 account ERROR: operation_logger.lua(640): ChangeAccountPwd: nil  155
2026-06-12 01:19:01.106597 account ERROR: engine.lua(27): BMC.Error.Unknow: ...t/bmc/apps/account/lualib/interface/operation_logger.lua:643: ...ps/account/lualib/infrastructure/ipmi_running_record.lua:97: ./opt/bmc/apps/account/lualib/infrastructure/kmc_client.lua:55: get ciphertext len failed, ret = 155
2026-06-12 01:19:02.229601 account ERROR: operation_logger.lua(640): ChangeAccountPwd: nil  155
2026-06-12 01:19:02.237239 account ERROR: engine.lua(27): BMC.Error.Unknow: ...t/bmc/apps/account/lualib/interface/operation_logger.lua:643: ...ps/account/lualib/infrastructure/ipmi_running_record.lua:97: ./opt/bmc/apps/account/lualib/infrastructure/kmc_client.lua:55: get ciphertext len failed, ret = 155
2026-06-12 01:19:03.342610 account ERROR: operation_logger.lua(640): ChangeAccountPwd: nil  155
2026-06-12 01:19:03.345107 account ERROR: engine.lua(27): BMC.Error.Unknow: ...t/bmc/apps/account/lualib/interface/operation_logger.lua:643: ...ps/account/lualib/infrastructure/ipmi_running_record.lua:97: ./opt/bmc/apps/account/lualib/infrastructure/kmc_client.lua:55: get ciphertext len failed, ret = 155
2026-06-12 01:19:04.452004 account ERROR: operation_logger.lua(640): ChangeAccountPwd: nil  155
2026-06-12 01:19:04.458634 account ERROR: engine.lua(27): BMC.Error.Unknow: ...t/bmc/apps/account/lualib/interface/operation_logger.lua:643: ...ps/account/lualib/infrastructure/ipmi_running_record.lua:97: ./opt/bmc/apps/account/lualib/infrastructure/kmc_client.lua:55: get ciphertext len failed, ret = 155
2026-06-12 01:19:05.568781 account ERROR: operation_logger.lua(640): ChangeAccountPwd: nil  155
2026-06-12 01:19:05.573918 account ERROR: engine.lua(27): BMC.Error.Unknow: ...t/bmc/apps/account/lualib/interface/operation_logger.lua:643: ...ps/account/lualib/infrastructure/ipmi_running_record.lua:97: ./opt/bmc/apps/account/lualib/infrastructure/kmc_client.lua:55: get ciphertext len failed, ret = 155
2026-06-12 01:19:06.720787 account ERROR: operation_logger.lua(640): ChangeAccountPwd: nil  155
2026-06-12 01:19:06.739547 account ERROR: engine.lua(27): BMC.Error.Unknow: ...t/bmc/apps/account/lualib/interface/operation_logger.lua:643: ...ps/account/lualib/infrastructure/ipmi_running_record.lua:97: ./opt/bmc/apps/account/lualib/infrastructure/kmc_client.lua:55: get ciphertext len failed, ret = 155
2026-06-11 23:52:13.878395 event_policy ERROR: app_preloader.lua(232): ./opt/bmc/lualib/key_mgmt/key_client_lib.lua:106: app(event_policy/service/main) count(7) pcall failed(./opt/bmc/libmc/lualib/mc/logging.lua:458: kmc refresh mk mask (ex) failed, ret = 155)
2026-06-11 23:52:14.560923 product_mgmt ERROR: [C](65535): [WSEC_CBB][][99] (UTC) 2026-06-11 23:52:14 KMC not running.
2026-06-11 23:52:14.561528 product_mgmt ERROR: app_preloader.lua(232): ./opt/bmc/lualib/key_mgmt/key_client_lib.lua:106: app(product_mgmt/service/main) count(7) pcall failed(./opt/bmc/libmc/lualib/mc/logging.lua:458: kmc refresh mk mask (ex) failed, ret = 155)
2026-06-11 23:52:16.638605 product_mgmt ERROR: [C](65535): [WSEC_CBB][][99] (UTC) 2026-06-11 23:52:16 KMC not running.
2026-06-11 23:52:16.639093 product_mgmt ERROR: app_preloader.lua(232): ./opt/bmc/lualib/key_mgmt/key_client_lib.lua:106: app(product_mgmt/service/main) count(7) pcall failed(./opt/bmc/libmc/lualib/mc/logging.lua:458: kmc refresh mk mask (ex) failed, ret = 155)
2026-06-11 23:52:18.462177 remote_console ERROR: [C](65535): [WSEC_CBB][][99] (UTC) 2026-06-11 23:52:18 KMC not running.
2026-06-11 23:52:18.462982 remote_console ERROR: app_preloader.lua(232): ./opt/bmc/lualib/key_mgmt/key_client_lib.lua:106: app(remote_console/service/main) count(7) pcall failed(./opt/bmc/libmc/lualib/mc/logging.lua:458: kmc refresh mk mask (ex) failed, ret = 155)
2026-06-11 23:52:23.876993 event_policy NOTICE: key_client_lib.lua(107): Start Refresh MK Mask.
2026-06-11 23:52:24.550481 product_mgmt NOTICE: key_client_lib.lua(107): Start Refresh MK Mask.
2026-06-11 23:52:26.117616 account ERROR: [C](65535): [WSEC_CBB][][99] (UTC) 2026-06-11 23:52:26 KMC not running.
2026-06-11 23:52:26.118708 account ERROR: app_preloader.lua(232): ./opt/bmc/lualib/key_mgmt/key_client_lib.lua:106: app(account/service/main) count(7) pcall failed(./opt/bmc/libmc/lualib/mc/logging.lua:458: kmc refresh mk mask (ex) failed, ret = 155)

看起来问题与 key_mgmt 闭源模块相关,请帮忙确认问题根因谢谢

环境信息

社区 LTS SP1 基线

答案内容由AI生成,仅供参考:

4. 根本原因总结

综合所有信息,问题根因是:生产环境的 KMC 组件(加密模块)未能成功初始化或持续运行。这导致:

  • 密钥掩码刷新失败kmc refresh mk mask (ex) failed, ret = 155)。
  • 所有需要 KMC 进行解密、加密的 APP(如 account)无法正常调用,因为基础服务未就绪,违反了调用顺序,从而返回错误码 155。
  • 最终,修改用户密码(需要加密存储)和验证用户密码(需要解密比对)的操作均告失败。

5. 建议排查与解决方案

基于知识库中的案例(如 BMC固件升级失败问题分析白牌包适配与制作常见问题IPMI命令报错问题分析),建议按以下步骤排查与恢复:

  1. 优先尝试重启 BMC:这是最快速的恢复手段。通过 reboot 命令或调用相关管理接口重启 BMC,观察 KMC not running 错误是否消失。
  2. 检查 KMC 服务状态
    • 确认 bmc.kepler.kmc 或相关 kmc 进程是否已经正常启动。
    • 检查是否存在 spdm/service/main 等服务因文件缺失而未启动(知识库中有 spdm 服务因找不到 /opt/bmc/libmc/service/spdm/service/main.lua 而失败并 KILL self 的案例),这可能导致整个安全框架无法正常工作。
  3. 排查数据库与密钥文件
    • 数据库完整性:如知识库中 IPMI命令报错 案例所述,数据库异常可能导致 KMC 加密数据损坏或密钥丢失。可考虑删除异常用户(如用户17),重新创建来恢复。
    • KSF 文件:检查日志中是否有 kmc import ksf failed, ret = 255 的报错。如果有,说明 KSF 密钥文件可能损坏或版本不匹配,需要回滚或重新导入正确的密钥文件。
  4. 检查集成测试冲突(如果近期有变更)
    • 知识库中提到,在集成测试的单进程模式下,key_mgmt 作为 master 服务与 kmc 在同一进程运行时,重新注册会造成 kmc 数据重新初始化并导致 domain 丢失。如果有测试操作影响了生产环境,需要确认是否相关的冲突代码未清除干净。

总结来说,您的问题根因是 KMC 核心加密服务未运行,导致 APP 调用顺序混乱(错误码155),最终使密码修改和验证失败。建议优先重启 BMC,并深入排查 KMC 的服务启动和密钥存储文件状态。

点击此处查看详细分析解答

根据您提供的日志信息及知识库内容,该问题的根本原因可以定位为:KMC(Key Management Component,密钥管理组件)服务未正常启动或运行,导致密钥掩码刷新失败,并引发了一系列 APP 调用顺序错误(错误码 155),最终造成修改密码和验证密码功能失败。

以下是详细的根因分析和排查路径:

1. 根因分析:KMC 服务未运行

您日志中反复出现的错误 KMC not running. (如 2026-06-12 01:16:47.957878 时间戳)是一个直接且明确的主因。这表明系统的密钥管理核心服务(即 Kmc)未能成功初始化或已停止工作。

根据知识库中的信息,kmc 是一个核心加密模块,负责密钥管理、加密解密和系统安全初始化。它的异常会直接影响所有依赖其进行加解密操作的组件。

2. 错误码 155 的含义:APP 调用顺序错误

知识库中明确指出:

155错误码表示APP调用顺序错误

具体流程是:组件向 key_mgmt 注册密钥成功后,系统会开启线程定时刷新内存中的密钥掩码。如果注册失败,刷新掩码操作就会抛出 155 错误。

您的日志序列清晰地展示了这一链条:

  1. KMC not running (核心服务不可用)
  2. [SDP] GetWorkKeyByIDHash get WK failed 155 (获取工作密钥失败,返回 155)
  3. kmc_client.lua:55: get ciphertext len failed, ret = 155 (获取密文长度失败,返回 155)
  4. ChangeAccountPwd: nil 155 (修改密码操作失败,返回 155)

因此,根本原因是 KMC 没跑起来,导致后续所有依赖其密钥刷新、加解密功能的 APP(如账户服务 account、事件策略 event_policy、产品管理 product_mgmt)在执行调用时,由于依赖的基础服务(KMC)未就绪,造成了调用顺序错误

3. 关联日志印证

日志中还有另一条关键线索,印证了问题的根源在于 KMC 初始化或运行时异常:

  • kmc file decrypt/opt/bmc/libmc/lualib/mc/logging.lua:395: kmc import ksf failed, ret = 255 (参见搜索结果中的 升级hpm包失败 案例)
    • 虽然您的日志中未直接出现该行,但 255 错误码是 KMC 相关的常见基础错误(如 KSF 文件损坏或导入失败),往往与 KMC 服务无法启动相关联。这说明环境中存在 KMC 初始化数据(如 KSF 密钥存储文件)可能损坏或不完整的问题。

4. 根本原因总结

综合所有信息,问题根因是:生产环境的 KMC 组件(加密模块)未能成功初始化或持续运行。这导致:

  • 密钥掩码刷新失败kmc refresh mk mask (ex) failed, ret = 155)。
  • 所有需要 KMC 进行解密、加密的 APP(如 account)无法正常调用,因为基础服务未就绪,违反了调用顺序,从而返回错误码 155。
  • 最终,修改用户密码(需要加密存储)和验证用户密码(需要解密比对)的操作均告失败。

5. 建议排查与解决方案

基于知识库中的案例(如 BMC固件升级失败问题分析白牌包适配与制作常见问题IPMI命令报错问题分析),建议按以下步骤排查与恢复:

  1. 优先尝试重启 BMC:这是最快速的恢复手段。通过 reboot 命令或调用相关管理接口重启 BMC,观察 KMC not running 错误是否消失。
  2. 检查 KMC 服务状态
    • 确认 bmc.kepler.kmc 或相关 kmc 进程是否已经正常启动。
    • 检查是否存在 spdm/service/main 等服务因文件缺失而未启动(知识库中有 spdm 服务因找不到 /opt/bmc/libmc/service/spdm/service/main.lua 而失败并 KILL self 的案例),这可能导致整个安全框架无法正常工作。
  3. 排查数据库与密钥文件
    • 数据库完整性:如知识库中 IPMI命令报错 案例所述,数据库异常可能导致 KMC 加密数据损坏或密钥丢失。可考虑删除异常用户(如用户17),重新创建来恢复。
    • KSF 文件:检查日志中是否有 kmc import ksf failed, ret = 255 的报错。如果有,说明 KSF 密钥文件可能损坏或版本不匹配,需要回滚或重新导入正确的密钥文件。
  4. 检查集成测试冲突(如果近期有变更)
    • 知识库中提到,在集成测试的单进程模式下,key_mgmt 作为 master 服务与 kmc 在同一进程运行时,重新注册会造成 kmc 数据重新初始化并导致 domain 丢失。如果有测试操作影响了生产环境,需要确认是否相关的冲突代码未清除干净。

总结来说,您的问题根因是 KMC 核心加密服务未运行,导致 APP 调用顺序混乱(错误码155),最终使密码修改和验证失败。建议优先重启 BMC,并深入排查 KMC 的服务启动和密钥存储文件状态。

S920X20_2102315RRRD9RC100843_20260612-0225.tar.gz (2.6 MB)