Git报错remote: Verify fatal: Authentication failed for ***

时间:2025-04-15 09:42:10

解决 Git 拉取代码时报错:fatal: Authentication failed

在使用 Git 时,执行如下命令:

git pull origin master

出现报错:

remote: Verify
fatal: Authentication failed for ***

一、问题原因分析

1. 使用 HTTP 协议访问,未正确提供用户名和密码

当使用 HTTP 或 HTTPS 协议访问 Git 仓库时,Git 会要求进行身份验证。如果凭据不正确或未被缓存,就会出现认证失败。

2. Git 服务器禁用了账户密码认证,只支持 Token

现代 Git 服务可能禁用了传统密码登录,改为使用 Personal Access Token(访问令牌)作为认证凭据。

3. 仓库地址错误或无访问权限

仓库地址拼写错误、权限设置不当,也会导致访问失败。

4. 本地缓存了过期或错误的凭据

Git 可能使用了系统缓存的旧凭据,导致认证持续失败。

二、解决方法

方式一:重新输入用户名和密码 Git 可能缓存了错误的凭据

取消凭据缓存:

git credential-cache exit
git config --unset credential.helper

然后再次 pull,会重新提示输入账号密码。

方案二:使用 Token 替代密码登录

如果你使用的是 Gitea 或 GitLab、GitHub,请前往平台个人设置中生成一个 Access Token。

登录 Gitea → 用户头像 → 设置 → 应用 → 生成新的 Access Token

然后在 Git 拉取时,使用你的用户名作为账号,Token 作为密码。

方案四:删除系统中缓存的旧凭据

Windows: 打开「凭据管理器」,找到和 Git 相关的条目,删除它们。

macOS: 打开「钥匙串访问」应用,搜索 git,删除对应条目。

Linux: 如果你启用了 git-credential-cache,可通过以下命令清除缓存:git credential-cache exit

方案五:推荐改用 SSH 协议

使用 SSH 协议不需要每次输入密码,更安全也更方便:

生成 SSH 密钥(如果尚未生成):

ssh-keygen -t rsa -b 4096 -C “your_email@example.com”

将生成的公钥添加到 Gitea 用户设置中。

修改仓库地址为 SSH 格式:

git remote set-url origin git@address.git

测试连接:

ssh -T git@ip