关于github在vscode上的认证以及密钥缓存机制

关于github在vscode上的认证以及密钥缓存机制_第1张图片
今天在向GitHub仓库提交代码的时候收到了这封邮件,说是使用密码的认证将要被舍弃了,提醒我换成两步验证(2FA),切换成两步验证很顺利,突然很好奇GitHub密码在Mac上是怎么保存的

vscode的设置里有两个选项,如下图
关于github在vscode上的认证以及密钥缓存机制_第2张图片
保存密码的地方如下图:

场景一:

  • 开启GitHub 2FA
  • 删除github.com login
  • ☑️Git: Terminal Authentication

提示输入账号密码,认证失败

在这里插入图片描述

场景二:

  • 开启GitHub 2FA
  • 删除github.com login
  • ☑️Github: Git Authentication

提示输入账号密码,认证失败
关于github在vscode上的认证以及密钥缓存机制_第3张图片

场景三:

  • 开启GitHub 2FA
  • 删除github.com login
  • ☑️Git: Terminal Authentication
  • ☑️Github: Git Authentication

正常克隆
关于github在vscode上的认证以及密钥缓存机制_第4张图片
keychain中自动添加github.com login

场景四:

  • 开启GitHub 2FA
  • 删除vscodevscode.github-authentication
  • ☑️Git: Terminal Authentication

正常克隆
关于github在vscode上的认证以及密钥缓存机制_第5张图片
keychain中没有自动添加vscodevscode.github-authentication
关于github在vscode上的认证以及密钥缓存机制_第6张图片

场景五:

  • 开启GitHub 2FA
  • 删除vscodevscode.github-authentication
  • ☑️Github: Git Authentication

同场景四

场景六:

  • 开启GitHub 2FA
  • 删除vscodevscode.github-authentication
  • ☑️Git: Terminal Authentication
  • ☑️Github: Git Authentication

同场景四

场景七:

  • 开启GitHub 2FA
  • 删除github.com login、vscodevscode.github-authentication
  • ☑️Git: Terminal Authentication

同场景一

场景八:

  • 开启GitHub 2FA
  • 删除github.com login、vscodevscode.github-authentication
  • ☑️Github: Git Authentication

同场景二

场景九(bug):

  • 开启GitHub 2FA
  • 删除github.com login、vscodevscode.github-authentication
  • ☑️Git: Terminal Authentication
  • ☑️Github: Git Authentication

成功clong
关于github在vscode上的认证以及密钥缓存机制_第7张图片
keychain中自动添加github.com login,没有自动添加vscodevscode.github-authentication

而且我的PAT也是空的
关于github在vscode上的认证以及密钥缓存机制_第8张图片

(感觉这里github.com login是从某个类似缓存的地方添加进来的,这应该是个bug,因为这会导致无法完全与GitHub解绑,参考这个issue:https://github.com/Azure/azure-sdk-for-js/issues/11778)


查看credential.helper

>>> git config --get --show-origin credential.helper
file:/Applications/Xcode.app/Contents/Developer/usr/share/git-core/gitconfig	osxkeychain

>>> git config --list --show-origin
file:/Applications/Xcode.app/Contents/Developer/usr/share/git-core/gitconfig    credential.helper=osxkeychain
file:/Users/microfat/.gitconfig user.email=[email protected]
file:/Users/microfat/.gitconfig user.name=microfat
file:/Users/microfat/.gitconfig core.excludesfile=/Users/microfat/.gitignore_global

参考:
https://stackoverflow.com/questions/16052602/disable-git-credential-osxkeychain
https://docs.github.com/cn/free-pro-team@latest/github/using-git/caching-your-github-credentials-in-git

你可能感兴趣的:(工具,测试,vscode,github,git,credential,authentation)