You need to enable JavaScript to run this app. 创建Airflow SSH连接报错:无法创建Fernet对象,报Incorrect padding
优惠活动
大模型
产品
解决方案
定价
更多

创建Airflow SSH连接报错:无法创建Fernet对象,报Incorrect padding

报错核心成因

Failed to update record. Could not create Fernet object: Incorrect padding 本质是Airflow的内置Fernet加密模块初始化失败,和SSH连接的参数填写逻辑无关——该模块负责加密存储连接配置里的密码类敏感字段,只要初始化环节出错,所有带密码字段的连接创建、更新操作都会直接失败。

常见的触发原因包括:

  • 手动抄录密钥时存在字符遗漏、末尾Base64填充位缺失
  • 配置文件中密钥前后带多余空格、换行,或者被额外的引号、注释内容污染
  • Webserver、Scheduler、Worker等不同组件加载的密钥字符串不一致
  • 配置文件中fernet_key字段留空,导致Airflow每次启动随机生成临时密钥,在多组件部署场景下极易出现密钥不一致、格式校验不通过的问题
分步骤排查解决
  • 校验全环境的Fernet密钥配置
    先定位Airflow实际加载密钥的来源,常见的两个读取优先级路径为:环境变量AIRFLOW__CORE__FERNET_KEY、airflow.cfg配置文件中[core]段下的fernet_key字段。
    合法的Fernet密钥为32字节随机数经URL安全Base64编码后的固定长度字符串,只要密钥内容不符合上述标准,就会触发padding校验报错。
  • 生成合规的标准密钥
    不要手动生成/编写Fernet密钥,直接在Airflow的运行环境中执行自带工具生成:
    python -c "from cryptography.fernet import Fernet; print(Fernet.generate_key().decode())"
    完整复制输出的整行字符串,不要截断、不要额外添加字符。
  • 统一全组件的密钥配置
    1. 停止所有正在运行的Airflow组件(Webserver、Scheduler、Worker、Triggerer)
    2. 将生成的标准密钥配置为全组件统一读取的固定值:配置时不要给密钥额外包裹单/双引号,不要在密钥行尾追加注释,避免配置解析错误
    3. 重新启动所有Airflow组件
  • 验证修复效果
    重启完成后,先在Web端创建任意带密码字段的测试连接,确认可以正常保存无报错后,再重新填写SSH连接的主机、端口、用户名、密码等参数完成创建即可。
    注意:替换密钥后,旧密钥加密存储的历史连接数据将无法被解密,需要重新配置这些历史连接的敏感字段。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.11.01 06:24:03