向GHCR推送Docker镜像遇认证错误:如何解决?
解决GHCR推送Docker镜像时的认证失败问题
排查与修复步骤
重新登录GHCR
先登出当前可能无效的会话:docker logout ghcr.io再用GitHub个人访问令牌(PAT)重新登录,执行命令后输入你的GitHub用户名,密码处输入PAT:
docker login ghcr.io -u YOUR_GITHUB_USERNAME确认PAT权限符合要求
创建PAT时必须勾选write:packages权限(核心推送权限),可选添加read:packages(用于拉取验证)、delete:packages(如需删除镜像)。禁止使用GitHub账号密码登录,GHCR已不再支持这种认证方式。检查镜像命名格式
镜像名必须严格为ghcr.io/[GitHub用户名]/[镜像名]:[标签],比如ghcr.io/stevec/my-image:latest,注意用户名大小写要和GitHub账号完全匹配(GHCR对大小写敏感)。清理Docker认证缓存
如果之前的认证信息有缓存冲突:- Linux/macOS:编辑
~/.docker/config.json,删除其中ghcr.io相关的认证条目 - Windows:编辑
C:\Users\<你的用户名>\.docker\config.json,删除对应条目
之后重新执行登录命令。
- Linux/macOS:编辑
验证令牌有效性
若以上步骤无效,重新生成一个新的PAT,避免原令牌过期、权限变更或泄露导致失效。
内容的提问来源于stack exchange,提问作者stevec
相关产品推荐
相关产品推荐

