在 macOS 上每次 GitHub 推送 VS Code 之前强制输入密码

Force password entry before each GitHub push in VS Code on macOS

如何在每次推送到 GitHub 之前强制 VS Code 询问我的 macOS Keychain 密码?

VS Code 从来没有问过我的 GitHub 密码(通过钥匙串),直到我推送到 GitHub 并且它在每次推送之前再次询问。

这一直有效,直到几个小时前我遇到了一些问题并撤销了我的访问权限并且 VS Code 请求了一个新令牌。

现在 VS Code 根本不要求输入密码。即使当我从钥匙串白名单中删除 VS Code 时,它​​也只会在程序启动时询问我的密码一次,然后不会再次询问,即使是推送也不会。

我希望 VS Code 在每次从 Keychain 推送之前请求我的 GitHub 令牌。

检查您的 git config --global credential.helper:它引用了负责缓存您的凭据的程序。

A git config --global --unset credential.helper 会删除它,迫使 Git 总是询问您的凭据。

在将我当前的 macOS 登录钥匙串与备份中的钥匙串进行比较后,一切仍然如我所愿,我找到了一个解决方案:

似乎至少有两种 VS Code 访问钥匙串的方式:

  1. 直接通过 OAuth。这在 VS Code 通过 GitHub 网站自动请求访问令牌时使用。它将令牌存储在钥匙串中,名称为 vscodevscode.github-authentication.

  2. 通过 git-credential-osxkeychain 和一个 personal access token 间接存储在钥匙串中,名称为 github.com.

VS Code 似乎会根据它在 macOS 钥匙串中找到的键自动决定使用哪种方式。

我还没有找到如何在使用 OAuth 时强制 VS Code 在每次推送时询问钥匙串密码的方法,但它现在可以通过 git-credential-osxkeychain 工作。

解决方案

  1. 通过GitHub / Settings / Developer settings / Personal access tokens

    请求个人访问令牌
  2. 通过以下方式检索您的 GitHub ID:https://api.github.com/users/<your user name>

  3. 打开Keychain Access并新建一个密码项:
    钥匙串项目名称:https://github.com
    账户名:<your GitHub ID>
    密码:<your personal access token>

备注:

  1. 如果 VS Code 多次询问您的钥匙串密码,请尝试通过命令行推送

    • 点击Always Allow请求...access key "github.com"...
    • 点击 Allow 请求 ...use your confidential information stored in "github.com"
  2. 这是一个完整的“尝试错误”解决方案,我没有找到太多关于它的信息。如果有人能解释这里到底发生了什么,那就太好了。我也没有找到任何关于通过 git-credential-osxkeychain.

    设置 VS Code 的官方信息
  3. 我想需要安装 git 才能使它工作。我通过 Homebrew

    安装
  4. 至少对我来说,这个解决方案适用于通过 VS Code GUIVS Code 集成终端OS终端机.