如何在VScode中切换两个Git账号 解决GitHub克隆权限报错
解决步骤
1. 验证当前终端SSH连通性
首先在VSCode打开的CMD终端内执行命令:ssh -T git@github.com
如果同样返回publickey权限报错,说明CMD终端环境没有识别到你绑定GitHub账号的SSH私钥,这是问题核心:Git Bash默认会自动加载.ssh目录下的密钥/你已在Git Bash配置了ssh-agent自启,而CMD终端默认没有相关自动加载逻辑。
2. 核对全局SSH配置
打开用户目录下的.ssh文件夹(路径一般为C:\Users\你的系统用户名\.ssh),确认存在config文件,且内容包含如下规则(替换为你自己的实际参数):
# 公司Git配置 Host 公司Git服务域名(例:git.xxx.com) HostName 公司Git服务域名 User git IdentityFile ~/.ssh/公司账号对应的私钥文件名(例:id_rsa_company) # 个人GitHub配置 Host github.com HostName github.com User git IdentityFile ~/.ssh/GitHub账号对应的私钥文件名(例:id_rsa_github)
确保IdentityFile对应的私钥文件真实存在,路径没有使用仅Git Bash可识别的特殊别名。
3. 手动加载SSH私钥
在VSCode的CMD终端内依次执行命令:
- 启动ssh-agent服务:
start-ssh-agent - 加载你的GitHub私钥:
ssh-add ~/.ssh/你的GitHub私钥文件名
加载完成后重新执行ssh -T git@github.com,如果返回Hi 你的GitHub用户名! You've successfully authenticated说明连通正常,此时再执行git clone即可正常操作。
4. 配置CMD自启加载私钥(可选)
如果不想每次打开终端都手动加载私钥,可以配置CMD自动运行规则:
- 按下Win+R输入
regedit打开注册表,定位到路径:HKEY_CURRENT_USER\Software\Microsoft\Command Processor - 新建字符串值,名称设为
AutoRun,值设为if not defined SSH_AGENT_PID (start-ssh-agent > nul & ssh-add ~/.ssh/你的GitHub私钥文件名 > nul)
配置完成后所有新打开的CMD终端都会自动启动ssh-agent并加载对应私钥。
5. 核对Git账号配置
如果连通性正常还是报错,在VSCode终端执行git config --list --show-origin检查账号配置:
如果全局git配置默认是公司账号,可以在克隆后的GitHub仓库目录单独执行命令配置个人账号:git config user.name "你的GitHub用户名"git config user.email "你的GitHub绑定邮箱"
注意:Git Bash和CMD是相互独立的终端环境,配置不互通,所有验证操作都需要在VSCode调用的CMD终端内执行才有效。
内容的提问来源于stack exchange,提问作者Zeitlin
相关产品推荐
相关产品推荐

