最近突然 iCloudPD 无法完成 MFA 登录的问题分析(2026 年 3 月后)

背景

最近在维护一套基于 Docker 的 iCloud 照片备份方案(icloudpd)时,原本稳定运行的同步任务突然全部失效。

表现很一致:

  • 无法下载照片
  • 日志中出现关键报错:
ERROR: Cookie is not multi-factor authentication capable

更关键的是,这套方案已经稳定运行了很长时间,这次问题是突然出现的

这通常意味着:不是配置问题,而是外部系统发生了变化

问题

核心问题可以归纳为一句话:

icloudpd 无法完成 MFA(双重认证)流程,导致 cookie 无效。

从流程上看,本来应该是这样的:

登录 → 触发 Apple MFA → 输入验证码 → 生成 cookie → 同步正常

但现在变成:

登录 → 触发 MFA → ❌ 收不到验证码 → cookie 无法生成 → 认证失败

而且这个问题有几个明显特征:

  • 所有设备(NAS / Docker / 服务器)同时失效
  • 与网络、权限、配置无关
  • 台湾 / 国际 Apple ID(.com)同样受影响
  • 手动 reauth 也失败

分析

现象不是个例

从社区反馈来看,这不是单点问题,而是集中爆发

  • 多个用户在 2026 年初开始出现同样问题
  • 表现为:
  • MFA 推送收不到
  • SMS 有时也不可用
  • 即使输入验证码也会失败
  • GitHub issue 中已经出现大量类似日志 (GitHub)

关键异常点:MFA 行为改变

icloudpd 的认证机制本质是:

模拟浏览器登录 iCloud Web,然后生成一个 MFA cookie

而 Apple 的 MFA 原本依赖:

  • 信任设备推送(最常见)
  • 短信验证码(备用)

但现在的变化是:

API 登录(非真实设备)触发的 MFA 行为被“降权”或“隔离”了

具体表现:

  • 推送验证码不再发送到信任设备
  • API 会话无法被 Apple 判定为“可信登录环境”
  • MFA token 无法绑定到 cookie

最终结果就是:

Cookie is not multi-factor authentication capable

也就是:

这个 cookie 没有完成 MFA 验证,不被 Apple 接受

本质原因(推测机制)

虽然 Apple 没有公开说明,但从行为可以推断:

Apple 在 2026 年 3 月后做了安全策略升级

可能包括:

  • 区分“设备登录”和“API 登录”
  • 限制自动化脚本获取 MFA token
  • 强化反自动化(anti-bot)机制
  • MFA 必须绑定“设备上下文”

这和近几年 Apple 的安全策略趋势是一致的:

越来越不允许“非设备环境”长期持有认证状态

为什么之前可以,现在不行?

因为旧机制:

  • MFA token 可以“弱绑定”
  • cookie 可复用
  • API 登录 ≈ 浏览器登录

而现在:

  • MFA token 强绑定设备上下文
  • cookie 必须完整 MFA 状态
  • API 登录无法完成完整认证链路

解决方案

最稳定方案:使用 iOS 本地生成验证码

这是目前成功率最高、最稳定的方法。

操作步骤

在你的 iPhone / iPad 上:

  1. 打开「飞行模式」(建议关闭 Wi-Fi)
  2. 进入:
设置 → Apple ID → 登录与安全性
  1. 系统会生成一个:

离线可用的 6 位验证码

  1. 复制该验证码,在 icloudpd --Initialise 时输入

为什么这个方法有效?

关键在于:

这个验证码不是通过推送生成的,而是设备本地生成的

也就是说:

  • 不依赖 Apple 推送通道
  • 不依赖 API 触发
  • 直接来自“受信任设备”

换句话说:

👉 你绕过了 Apple 对 API 登录的 MFA 限制

优化 / 延伸

这个问题本质上不是 bug,而是一个趋势:

自动化访问 iCloud 正在变得困难

Apple 正在逐步限制:

  • 非官方客户端
  • 模拟登录
  • cookie 持久化

icloudpd 的未来风险

当前方案依赖:

  • Web 登录模拟
  • MFA cookie 复用

这两个点都在被 Apple 持续收紧。

更长期的思路

如果依赖 iCloud 做自动化:

可以考虑:

  • 使用官方 API(如果未来开放)
  • 减少自动化依赖
  • 做“半自动同步”(人工触发 MFA)