首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Git bash中的git命令需要冻结凭据,而登录弹出窗口不显示。

Git bash中的git命令需要冻结凭据,而登录弹出窗口不显示。
EN

Stack Overflow用户
提问于 2021-06-08 23:12:48
回答 1查看 2K关注 0票数 2

Windows 7 PC

  • 已安装的Git (包括Git Bash控制台)
  • 打开控制台并键入命令克隆Git。
  • 收到了安装.Net框架的警告,但希望稍后安装,因此单击cancel并获得旧学校默认用户名和密码单独的登录弹出窗口(而不是新的Git凭据弹出)
  • 将我的用户和密码输入旧学校弹出窗口并登录,然后正确地将回购文件克隆到我的本地工作区。
  • 安装.NetFramework并根据需要重新启动计算机
  • 打开Git Bash,尝试运行一个需要git登录(git拉、git push等)的命令,此时命令控制台就会冻结。我希望新的Git凭据管理器弹出,以便我可以登录,但它永远不会出现。旧学校的登录也不会弹出。因此,我无法登录到Git,因此所有需要登录的操作都无法继续。

我试过:

  • 重新启动计算机
  • 卸载和重新安装git
  • 修复.netframework
  • 寻找保存的凭据(找不到任何东西)。无论如何,不应该有任何保存的凭据,因为我使用了不保存它们的旧的学校身份验证登录名AFAIK。

我以前在另一台电脑上经历过这一切,但并没有碰到这种情况。在安装.netframework之后,当我尝试一个要求登录的git命令时,出现了新的Git凭据管理器(然后它保存了我的凭据)。

搜索了Google和Stack溢出/交换等,在任何地方都找不到这个问题。大多数问题都是关于如何阻止弹出显示和保存凭据,这与我的问题正好相反。

注意: Windows 7不应该是问题,因为我已经在Win 7 PC上这样做了,没有问题。

那么,我如何强制Git登录弹出以显示(无论是新的还是旧的)?

编辑:尝试了各种各样的东西,仍然无法获得新的令牌身份验证弹出,但下面是我尝试的内容和我现在所处的位置:

我决定查看Windows程序区域,但没有找到Git凭据管理器,这很奇怪,因为它包含在Git中,我刚刚安装了Git。无论如何,下载并安装了独立的git凭据管理器。

然后尝试了以下几种: git config -全局credential.helper管理器-核心git配置-全局credential.helperselector.selected管理器-core。

并得到:警告: credential.helper有多个值(我忘记了其他错误行,但它提到了使用-替换--全部修复)

所以我做了: git配置--全局--替换--所有credential.helper管理器-核心。

这并没有出什么差错,似乎在做些什么。

然后我运行了: git config -全局credential.helperselector.selected管理器-core。

然后,我做了git推送,它自动推送,完全不问我的证书,这真是令人困惑。

因此,我仍然无法获得新的令牌身份验证弹出。这太令人沮丧了..。

编辑2:困境仍在继续,因为Git Push在不要求Git的情况下工作,我意识到我想要的弹出窗口可能不会出现,因为Windows凭据管理器可能已经有我以前输入的creds了。所以我去了Windows凭证管理公司,找到了他们,然后把他们从金库里拿了出来。

然后,我尝试了git拉,我终于得到了新的令牌身份验证弹出。我的希望飞涨了。我进入了我的标记。当终端机出现以下错误时,我的希望破灭了:

致命:发送请求时发生错误。致命:请求被中止:无法创建SSL/TLS安全通道。

编辑3解决方案!遵循下面接受的答案中的说明.一旦我重新启用了新的令牌信用管理器,我就必须在我的Windows 7 PC上启用TLS 1.2。我有最新的.net框架版本,但我必须编辑注册表以添加一个键来启用TLS1.2。备份注册表后,我遵循以下说明:https://help.runbox.com/enabling-tls-1-2-on-windows-7/

重新启动计算机后,启用了TLS 1.2,当我获得令牌cred管理器弹出时,我输入了令牌,它被接受了,弹出窗口消失了。现在,我的and被保存,并使用了新的更安全的令牌身份验证。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-06-09 05:18:27

我希望新的Git凭据管理器弹出,以便我可以登录,但它永远不会出现。

为此,您至少需要指示Git使用它:

代码语言:javascript
复制
git config --global credential.helper manager-core
git config --global credential.helperselector.selected manager-core

“任择议定书”补充说:

它自动推开,根本不问我的证书,这真是令人费解。“

如果您想强迫它向您请求您的凭据(username+token),您需要首先清除当前存储的凭据。

例如,假设您的遥控器是github.com

代码语言:javascript
复制
printf "protocol=https\nhost=github.com" | git-credential-manager-core erase

重复这个命令,直到你看到弹出。

那就不要输入您的凭据。取消弹出窗口

注意:git-credential-manager-core.exe在Windows安装的mingw64/libexec/git-core中。

因此,这需要在您的%PATH%中,git-credential-manager-core erase才能工作。

然后,再试一次:你会看到弹出式的。

输入您的凭据:它们将被存储。

检查是否将正确的令牌存储在:

代码语言:javascript
复制
printf "protocol=https\nhost=github.com\nusername=<you>" | git-credential-manager-core get

关于错误消息:

代码语言:javascript
复制
 fatal: The request was aborted: 
        Could not create SSL/TLS secure channel.

检查由于TLS 1.2只进行更改,无法下载某些组件

这是因为GitHub的“弱密码标准删除通知”

需要安装对TLS 1.2的支持。

见".NET框架3.5.1中包含的TLS系统默认版本在Windows7 SP1和Server 2008 R2 SP1上的支持":

64-之二:

  • 安装windows6.1-kb3154518-x64.msu
  • 添加以下注册表项,以使用SSL和TLS的操作系统默认值,而不是硬编码的.NET框架默认值。
代码语言:javascript
复制
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\v2.0.50727]
    "SystemDefaultTlsVersions"=dword:00000001

[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\.NETFramework\v2.0.50727]
    "SystemDefaultTlsVersions"=dword:00000001
  • 重新启动,你就可以走了。
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67895635

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档