GIT 凭据从 Windows 凭据管理器中消失

问题描述

我一直在处理我的 GIT 凭据在大约 24 小时内从 Windows 凭据管理器中删除的问题。截至今天(12/22 - 2.29.2),我使用的是最新版本的 GIT,但我什至不知道删除是由 GIT 凭证管理器(核心)本身还是其他原因触发的。

这是我目前观察到的:

每当我在一天中第一次运行 GIT 命令时(比如 GIT PULL),都会创建一个 PAT(个人访问令牌)。它在一年内到期。在下面的示例中,我使用 ADO (Azure DevOps) 作为我的存储库:

PAT created by GIT

如果我启动 Windows 凭据管理器(控制面板\所有控制面板项目\凭据管理器),我会看到:

Windows Credential Manager

但是,在大约 24 小时后,此存储的凭据将消失,系统将提示我再次进行身份验证,这很烦人。关于可能导致这种情况的任何线索?

这是我的 SYstem gitconfig 文件中的内容 - 安装 GIT 时自动提供:

gitconfig

有关如何避免凭据被删除的任何想法,我将不胜感激!

谢谢!

解决方法

我已经检查了我本地的 git 凭据(git 版本:git 版本 2.29.2.windows.3)并且凭据暂时没有消失。

您可以尝试以下步骤来检查凭据是否可以按预期工作。

1.您可以手动在本地计算机上为 Azure Devops Git 创建凭据。

Windows 凭据管理器 -> 添加通用凭据

enter image description here

互联网或网络地址格式:git:https://dev.azure.com/organizationname

2.您可以在C:\Users\TargetUser中找到.gitconfig文件内容。然后您可以检查凭证是否为存储模式。

[credential]
    helper = store

如果没有,您可以运行以下命令来创建它并检查凭据是否在 24 小时后仍被删除。

git config --global credential.helper store

3.我也在 git 版本 2.28.0 上测试了相同的步骤,它也可以正常工作。您可以尝试安装以前版本的 git 并尝试它是否有效。

附加信息:在我的本地机器上,即使PAT已经过期,git凭证也不会被自动删除。

另一方面,您也可以尝试使用 SSH 密钥身份验证来解决问题。

您可以参考this doc了解更多详细信息。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...