在 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 访问钥匙串的方式:
直接通过 OAuth
。这在 VS Code 通过 GitHub 网站自动请求访问令牌时使用。它将令牌存储在钥匙串中,名称为 vscodevscode.github-authentication
.
通过 git-credential-osxkeychain
和一个 personal access token 间接存储在钥匙串中,名称为 github.com
.
VS Code 似乎会根据它在 macOS 钥匙串中找到的键自动决定使用哪种方式。
我还没有找到如何在使用 OAuth
时强制 VS Code 在每次推送时询问钥匙串密码的方法,但它现在可以通过 git-credential-osxkeychain
工作。
解决方案
通过GitHub / Settings / Developer settings / Personal access tokens
请求个人访问令牌
通过以下方式检索您的 GitHub ID:https://api.github.com/users/<your user name>
打开Keychain Access
并新建一个密码项:
钥匙串项目名称:https://github.com
账户名:<your GitHub ID>
密码:<your personal access token>
备注:
如果 VS Code 多次询问您的钥匙串密码,请尝试通过命令行推送
- 点击
Always Allow
请求...access key "github.com"...
- 点击
Allow
请求 ...use your confidential information stored in "github.com"
。
这是一个完整的“尝试错误”解决方案,我没有找到太多关于它的信息。如果有人能解释这里到底发生了什么,那就太好了。我也没有找到任何关于通过 git-credential-osxkeychain
.
设置 VS Code 的官方信息
我想需要安装 git
才能使它工作。我通过 Homebrew
安装
至少对我来说,这个解决方案适用于通过 VS Code GUI、VS Code 集成终端 和 OS终端机.
如何在每次推送到 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 访问钥匙串的方式:
直接通过
OAuth
。这在 VS Code 通过 GitHub 网站自动请求访问令牌时使用。它将令牌存储在钥匙串中,名称为vscodevscode.github-authentication
.通过
git-credential-osxkeychain
和一个 personal access token 间接存储在钥匙串中,名称为github.com
.
VS Code 似乎会根据它在 macOS 钥匙串中找到的键自动决定使用哪种方式。
我还没有找到如何在使用 OAuth
时强制 VS Code 在每次推送时询问钥匙串密码的方法,但它现在可以通过 git-credential-osxkeychain
工作。
解决方案
通过GitHub / Settings / Developer settings / Personal access tokens
请求个人访问令牌通过以下方式检索您的 GitHub ID:
https://api.github.com/users/<your user name>
打开
Keychain Access
并新建一个密码项:
钥匙串项目名称:https://github.com
账户名:<your GitHub ID>
密码:<your personal access token>
备注:
如果 VS Code 多次询问您的钥匙串密码,请尝试通过命令行推送
- 点击
Always Allow
请求...access key "github.com"...
- 点击
Allow
请求...use your confidential information stored in "github.com"
。
- 点击
这是一个完整的“尝试错误”解决方案,我没有找到太多关于它的信息。如果有人能解释这里到底发生了什么,那就太好了。我也没有找到任何关于通过
设置 VS Code 的官方信息git-credential-osxkeychain
.我想需要安装
安装git
才能使它工作。我通过 Homebrew至少对我来说,这个解决方案适用于通过 VS Code GUI、VS Code 集成终端 和 OS终端机.