欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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

程序员文章站 2022-03-11 15:37:37
今天在向GitHub仓库提交代码的时候收到了这封邮件,说是使用密码的认证将要被舍弃了,提醒我换成两步验证(2FA),切换成两步验证很顺利,突然很好奇GitHub密码在Mac上是怎么保存的vscode的设置里有两个选项,如下图保存密码的地方如下图:场景一:开启GitHub 2FA☑️Git: Terminal Authentication提示输入账号密码,认证失败场景二:开启GitHub 2FA☑️Github: Git Authentication提示输入账号密码,认证....

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

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

场景一:

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

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

场景二:

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

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

场景三:

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

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

场景四:

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

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

场景五:

  • 开启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上的认证以及密钥缓存机制
keychain中自动添加github.com login,没有自动添加vscodevscode.github-authentication
关于github在vscode上的认证以及密钥缓存机制
而且我的PAT也是空的
关于github在vscode上的认证以及密钥缓存机制

(感觉这里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=gaoxiang992@gmail.com
file:/Users/microfat/.gitconfig user.name=microfat
file:/Users/microfat/.gitconfig core.excludesfile=/Users/microfat/.gitignore_global

参考:
https://*.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

本文地址:https://blog.csdn.net/MacwinWin/article/details/111866665