如何修复GitHub Actions中npm发布的EOTP错误?
解决GitHub Action中npm publish报EOTP错误的方案
问题原因
你的npm账号开启了双因素认证(2FA),使用普通访问令牌执行npm publish时需要手动输入OTP,但GitHub Action是无交互环境,无法提供验证码,因此触发EOTP错误。
解决方案:使用npm自动化令牌(Automation Token)
npm提供专门用于CI/CD环境的自动化令牌,这类令牌无需OTP即可完成发布操作,步骤如下:
创建npm自动化令牌
- 登录你的npm账号,进入「Settings」→「Access Tokens」页面
- 点击「Generate New Token」,选择令牌类型为Automation
- 配置令牌权限(至少勾选「Publish」权限,按需调整),生成令牌后复制保存(令牌仅显示一次)
更新GitHub仓库密钥
- 打开你的GitHub仓库,进入「Settings」→「Secrets and variables」→「Actions」
- 找到已有的
NPM_TOKEN密钥,将其值替换为刚生成的npm自动化令牌
验证工作流配置
当前工作流中.npmrc的配置无需修改,确保如下代码正常执行即可:echo "//registry.npmjs.org/:_authToken=${{ secrets.NPM_TOKEN }}" >> ./.npmrc自动化令牌会自动绕过OTP验证,无需修改
npm publish命令。
额外检查项
- 确认npm账号2FA设置中允许自动化令牌跳过OTP验证(默认开启该权限)
- 可在本地测试:使用自动化令牌执行
npm publish --dry-run,验证无交互发布模拟是否正常
内容的提问来源于stack exchange,提问作者SNORLAX
相关产品推荐
相关产品推荐

