如何在推送到我的 git 存储库时强制提示用户和密码?

问题描述 投票:0回答:9

我最近将本地 Git 安装从

1.8.1
更新为
1.8.0.1

我注意到,当我在 GitHub 上工作时,它不再提示我在推送时输入用户名和密码。

这让我很困扰,因为我认为每次都必须输入用户名和密码作为一种很好的安全措施。 (如果别人用我的电脑怎么办?)

我检查了以下内容:

  • 1.8.0.1
    在另一台计算机上仍然要求输入用户名和密码。
  • 我在 github 上的帐户仍然执行私人/安全控制。
  • 我使用 https 远程引用,而不是 ssh。
  • 为了更好地衡量,我检查了我的
    ~/.ssh
    文件夹。没有什么问题。
  • 不会将登录详细信息存储在
    ~/.gitconfig
    或单个
    <proj>/.git/config
    文件中。
  • 我也
    ~/.netrc
    中存储任何与github相关的内容。
  • 我创建了一个新的虚拟存档:仍然不提示我登录。

我在 git 发行说明存档中找不到任何内容。

有谁知道这是否是一个新的 git 行为?如何恢复提示?

git github
9个回答
191
投票

使用 git 命令添加 -v 标志。例如

git pull -v

v 代表验证。


115
投票

这很可能是因为您有多个帐户,例如一个私人帐户,一个用于 GitHub 的工作帐户。

解决方案 在 Windows 上,转到“开始”>“凭据管理器”>“Windows 凭据”并删除 GitHub 凭据,然后再次尝试拉或推,系统将提示您重新登录 GitHub

解决方案 在Mac上,在终端上发出以下问题:

git remote set-url origin https://[email protected]/username/repo-name.git

在两个地方将“用户名”替换为您的 GitHub 用户名,并提供您的 GitHub 存储库名称。

或添加密码/令牌

git remote set-url origin https://username:<pass/token>@github.com/username/repo-name.git

27
投票

有了

git config -l
,我现在看到我有一个
credential.helper=osxkeychain
选项

这意味着凭证助手(最初在 1.7.10 中引入)现已生效,并将自动缓存用于通过 HTTP 访问远程存储库的密码。
(如“GIT:有什么方法可以设置默认登录凭据?”)

您可以完全禁用该选项,或者仅针对单个存储库


20
投票

这些都不适合我。我试图从私人 git 服务器克隆一个目录,并输入了错误的凭据,然后它不允许我在后续尝试中尝试不同的凭据,它只是立即因身份验证错误而出错。

有效的方法是在 URL 中指定用户名 (

mike-wise
),如下所示:

   git clone https://[email protected]/someuser/somerepo.git

5
投票

由于问题标有

Github
,因此添加另一个遥控器(如
https_origin
)并添加
https
连接可以强制您始终输入密码:

git remote add https_origin https://github.com/.../...

3
投票

补充第三个答案: 如果您使用的是非英文Windows,您可以通过“控制面板”>“用户帐户”>“凭据管理器”找到“凭据管理器”


0
投票

绕过愚蠢的 github 限制的最简单方法是在您的个人资料设置中的开发人员下创建 api 令牌。然后你可以将你的repo url更改为@url


0
投票

删除 ~/.gitconfig 中的这些行可以拯救我:

    extraheader = Authorization: Bearer xxx
[remote "origin"]
    url = https://user:[email protected]/user/repo.git
[alias]
    credential-manager = credential-manager-core
[credential]
    helper = osxkeychain```

0
投票

解决方案很多,但有时却行不通。

就我而言,我们将用户配置文件从一个域迁移到另一个域。凭证管理器被清空了,因为,依赖于 DPAPI 的任何东西都不再存在了。

就我而言,在凭据管理器中创建通用凭据:

git:https://hostname
并且...我已通过身份验证!

对我来说,我有这样的设置:

credential.helper=manager
git version 2.45.0

© www.soinside.com 2019 - 2024. All rights reserved.