Windows和Linux下Gitlab以及Github多账号(3个及以上)SSH配置
多 Git 账号管理(SSH 模式)—— Win 篇动机我在使用多个 Git 账号时经常遇到麻烦每次切换账号都要重新登录尤其是浏览器身份验证时。我默认浏览器使用 Edge但 GitHub 的登录信息保存在 Chrome 中跳转验证让人头皮发麻。公司使用 GitLab强制要求 SSH而我个人的 GitHub 账号之前是用 HTTPS。频繁在公司和个人项目间切换要反复输入密码还经常需要改 git config 设置用户名和邮箱。为了解决这些问题我统一改用 SSH并配置多个密钥和 .gitconfig实现账号之间的无缝切换。适用于以下场景公司项目强制要求使用 SSH 方式进行 clone 或其他 Git 操作。多账号频繁使用时推荐使用 SSH偶尔使用可选择 GitHub Desktop、封装 Git 的 IDE或浏览器登录切换。拥有 3 个及以上 Git 账号时浏览器切换效率低建议使用 SSH。1. 生成 SSH 密钥对为每个账号生成一对公钥和私钥# 个人 GitHub 账号 ssh-keygen -t ed25519 -C xxxyyygmail.com -f ~/.ssh/id_ed25519_personal # 公司 GitHub 账号 ssh-keygen -t ed25519 -C xxxyyyyour-company.com -f ~/.ssh/id_ed25519_company_github # 公司 GitLab 账号 ssh-keygen -t ed25519 -C xxxyyyyour-company.com -f ~/.ssh/id_ed25519_company_gitlab2. 配置 SSH 配置文件在C:\Users\你的用户名\.ssh\config中配置如下内容# Company GitHub account Host github.com-company HostName github.com User git IdentityFile ~/.ssh/id_ed25519_companyGithub # Company GitLab account Host gitlab.com-company HostName gitlab.com User git IdentityFile ~/.ssh/id_ed25519_companyGitlab # Personal GitHub account Host github.com-personal HostName github.com User git IdentityFile ~/.ssh/id_ed25519_personal3. 创建账号专属的项目目录和配置文件3.1 创建三个文件夹建议将不同账号的项目放在不同路径中例如C:/Projekte/Personal/ C:/Projekte/CompanyGithub/ C:/Projekte/CompanyGitlab/3.2 分别创建.gitconfig文件个人 GitHub 账号C:\Users\你的用户名\.gitconfig-personal[user] name xxxyyy email xxxyyygmail.com公司 GitHub 账号C:\Users\你的用户名\.gitconfig-company-github[user] name xxxyyy-dev0511 email xxxyyyyour-company.com公司 GitLab 账号C:\Users\你的用户名\.gitconfig-company-gitlab[user] name xxxyyy email xxxyyyyour-company.com3.3 验证配置git config --file C:/Users/你的用户名/.gitconfig-personal --list git config --file C:/Users/你的用户名/.gitconfig-company-github --list git config --file C:/Users/你的用户名/.gitconfig-company-gitlab --list4. 配置全局.gitconfig文件在C:\Users\你的用户名\.gitconfig中添加如下内容[user] name xxxyyy email xxxyyyyour-company.com [includeIf gitdir:C:/Projekte/Personal/] path C:/Users/JinyaoChen/.gitconfig-personal [includeIf gitdir:C:/Projekte/CompanyGithub/] path C:/Users/JinyaoChen/.gitconfig-company-github [includeIf gitdir:C:/Projekte/CompanyGitlab/] path C:/Users/JinyaoChen/.gitconfig-company-gitlab5. 使用 SSH clone 多账号项目5.1 Clone 公司 GitLab 项目git clone gitgitlab.com-company:ComnanyRepo/kelvin5/iris/k5-graphql.git5.2 Clone 公司 GitHub 项目git clone gitgithub.com-company:ComnanyRepo/Grafana-Docker.git5.3 Clone 个人 GitHub 项目git clone gitgithub.com-personal:cjy513203427/IADBE.git多 Git 账号管理(SSH 模式)—— Linux 篇动机Linux 服务器环境下没有浏览器无法使用 HTTPS 图形化登录公司 GitLab 强制 SSH而 GitHub 项目也建议统一用 SSH 避免重复输密码。配置多个 SSH 密钥 includeIf规则后不同账号的仓库可以自动使用对应密钥和用户身份无需手动切换。适用于以下场景无图形界面的 Linux 服务器(GPU server、云主机等)只能使用 SSH。同时维护多个平台账号(如公司 GitHub 公司 GitLab)需要自动路由身份。希望git commit的作者信息按仓库目录自动切换不需要每个仓库手动git config。1. 生成 SSH 密钥对为每个账号生成一对公钥和私钥# 公司 GitHub 账号 ssh-keygen -t ed25519 -C xxxyyyyour-company.com -f ~/.ssh/id_ed25519_company_github # 公司 GitLab 账号 ssh-keygen -t ed25519 -C xxxyyyyour-company.com -f ~/.ssh/id_ed25519_company_gitlab生成后~/.ssh/目录结构如下~/.ssh/ ├── id_ed25519_company_github ├── id_ed25519_company_github.pub ├── id_ed25519_company_gitlab └── id_ed25519_company_gitlab.pub2. 将公钥添加到各平台输出公钥内容分别粘贴到对应平台的Settings → SSH Keys → Add new key# GitHub 公钥 cat ~/.ssh/id_ed25519_company_github.pub # GitLab 公钥 cat ~/.ssh/id_ed25519_company_gitlab.pub添加后验证连接ssh -T gitgithub.com-company # Hi xxxyyy-dev0511! Youve successfully authenticated... ssh -T gitgitlab.com-company # Welcome to GitLab, xxxyyy!2. 配置 SSH 配置文件在~/.ssh/config中写入以下内容(文件不存在则新建)# 公司 GitHub 账号 Host github.com-company HostName github.com User git IdentityFile ~/.ssh/id_ed25519_company_github IdentitiesOnly yes # 公司 GitLab 账号 Host gitlab.com-company HostName gitlab.com User git IdentityFile ~/.ssh/id_ed25519_company_gitlab IdentitiesOnly yesIdentitiesOnly yes禁止 SSH 自动尝试其他密钥确保精确匹配。3. 创建账号专属的项目目录和配置文件3.1 创建两个文件夹建议将不同账号的项目放在不同路径中mkdir -p ~/project/CompanyGithub mkdir -p ~/project/CompanyGitlab3.2 分别创建.gitconfig文件公司 GitHub 账号~/.gitconfig-company-github[user] name xxxyyy-dev0511 email xxxyyyyour-company.com公司 GitLab 账号~/.gitconfig-company-gitlab[user] name xxxyyy email xxxyyyyour-company.com3.3 验证配置git config --file ~/.gitconfig-company-github --list git config --file ~/.gitconfig-company-gitlab --list4. 配置全局.gitconfig文件在~/.gitconfig中添加如下内容[user] name xxxyyy email xxxyyyyour-company.com [includeIf gitdir:~/project/CompanyGithub/] path ~/.gitconfig-company-github [includeIf gitdir:~/project/CompanyGitlab/] path ~/.gitconfig-company-gitlab注意includeIf规则只在进入某个git 仓库内部(存在.git目录)时才生效在父目录~/project/CompanyGithub/下直接运行git config不会触发。5. 使用 SSH clone 多账号项目5.1 Clone 公司 GitLab 项目cd ~/project/CompanyGitlab git clone gitgitlab.com-company:CompanyOrg/kelvin5/iris/k4-wms.git5.2 Clone 公司 GitHub 项目cd ~/project/CompanyGithub git clone gitgithub.com-company:CompanyOrg/support-ai-agent-server.gitClone URL 中的 Host 别名(github.com-company、gitlab.com-company)必须与~/.ssh/config中的Host条目一致SSH 才能自动选择正确的密钥。与 Windows 版的主要差异项目WindowsLinuxSSH 配置路径C:\Users\用户名\.ssh\config~/.ssh/configgitconfig 路径C:\Users\用户名\.gitconfig~/.gitconfig项目目录C:/Projekte/CompanyGithub/~/project/CompanyGithub/验证连接同同无图形界面不适用SSH 是唯一方式验证最终效果进入具体仓库确认身份来源cd ~/project/CompanyGithub/support-ai-agent-server/ git config --show-origin user.name # file:/home/用户名/.gitconfig-company-github xxxyyy-dev0511 cd ~/project/CompanyGitlab/k4-wms/ git config --show-origin user.name # file:/home/用户名/.gitconfig-company-gitlab xxxyyy

相关新闻

JMeter聚合报告详解:性能测试核心指标解读与实战分析

JMeter聚合报告详解:性能测试核心指标解读与实战分析

1. 项目概述:为什么聚合报告是性能测试的“体检报告”?刚接触JMeter做性能测试的朋友,可能跑完脚本,看到控制台花花绿绿的日志就以为完事了。但真正决定一个性能测试是否有价值,关键看你怎么解读结果数据。而聚合报告&…

2026/6/24 4:27:55阅读更多 →
Python eval()函数安全风险深度解析:从CVE-2025-2945漏洞看代码注入防御

Python eval()函数安全风险深度解析:从CVE-2025-2945漏洞看代码注入防御

1. 项目概述:一次由eval()引发的安全风暴最近安全圈里有个事儿挺火的,一个编号为CVE-2025-2945的漏洞把pgAdmin这个老牌的PostgreSQL管理工具推上了风口浪尖。简单来说,这个漏洞的根源,指向了Python里一个让开发者又爱又恨的内置函…

2026/6/24 4:27:55阅读更多 →
接口自动化测试面试全攻略:从Pytest框架到CI/CD实战

接口自动化测试面试全攻略:从Pytest框架到CI/CD实战

1. 项目概述:为什么接口自动化测试面试是“兵家必争之地”最近几年,无论是大厂还是中小公司,但凡招聘软件测试工程师,尤其是中高级岗位,“接口自动化测试”几乎成了面试桌上的必考题。这背后反映的,是整个行…

2026/6/24 4:27:55阅读更多 →
Linux 再生龙系统迁移方法

Linux 再生龙系统迁移方法

一、前言 安装系统的方法有很多如 光盘/U盘 iso直接安装:只需制作系统启动盘即可,适用于少量的个人用户使用 2、PXE无人值守:通常用于新机器部署操作系统,需要搭建专门的服务并且要实现无人值守还得定制ks文件较为复杂&#xf…

2026/6/24 5:43:02阅读更多 →
Filter 专属注解:@WebFilter

Filter 专属注解:@WebFilter

Filter 专属注解:WebFilter 和 Servlet 的 WebServlet 一模一样用法,完全对应 xml 配置。 一、最简写法 注解版 import javax.servlet.annotation.WebFilter; import javax.servlet.*;WebFilter("/*") // 拦截所有请求 public class MyFilter…

2026/6/24 5:43:02阅读更多 →
项目实训博客(四)从Vulkan到D3D12:注入与拦截架构演变

项目实训博客(四)从Vulkan到D3D12:注入与拦截架构演变

一、为什么从Vulkan转向D3D12中期项目基于Vulkan,通过vulkan-1.dll Proxy DLL注入,拦截vkGetDeviceProcAddr,在vkQueuePresentKHR前插入图像处理。经过评估,最终项目转向D3D12方案,原因:维度VulkanD3D12游戏…

2026/6/24 5:43:02阅读更多 →
【工具优化】Windows工具MobaXterm_Personal_20.3解除最多保存14个Session的限制_20260505

【工具优化】Windows工具MobaXterm_Personal_20.3解除最多保存14个Session的限制_20260505

【工具优化】Windows工具MobaXterm_Personal_20.3解除最多保存14个Session的限制_20260505 一、激活前 补充说明: MobaXterm这个应用程序没有复杂的激活算法,真的很神奇。如果可能的话,请支持购买正版。 二、激活操作 2.1基于 github项目…

2026/6/24 5:43:02阅读更多 →
Altium Designer(AD 20)-PcbDoc中的黑色pcb可编辑区域怎么调大

Altium Designer(AD 20)-PcbDoc中的黑色pcb可编辑区域怎么调大

现象如图:调整方法:先点击黑色的区域,按数字1,再按D,进入pcb板调整区域。最后按数字2退出该模式。最后结果如图

2026/6/24 5:43:02阅读更多 →
2026年全球社交APP格局大洗牌!这20款APP,你手机里装了几个?

2026年全球社交APP格局大洗牌!这20款APP,你手机里装了几个?

即时通讯赛道杀出一匹黑马,CQCQ强势跻身前三 全球热门社交APP最新排名,这三款霸榜了 移动互联网发展到今天,各大APP早已深度渗透进我们生活的方方面面。无论是想找人聊聊天、刷刷视频解解闷,还是网购淘点好物、远程办公开个会&…

2026/6/24 5:38:02阅读更多 →
【人工智能】一文搞定到底什么是智能体

【人工智能】一文搞定到底什么是智能体

【人工智能】一文搞定到底什么是智能体 一文搞定到底什么是智能体【人工智能】一文搞定到底什么是智能体一. LM,WorkFlow,Agent分别有什么么不同二. Agent的思考过程是怎样的三. Agent的五个核心部分1)LLM2)Prompt3)Me…

2026/6/23 7:04:52阅读更多 →
嵌入式GUI控件实战:ROTARY、SCROLLBAR、SLIDER原理与应用

嵌入式GUI控件实战:ROTARY、SCROLLBAR、SLIDER原理与应用

1. 嵌入式GUI控件:从原理到实战的深度解析在嵌入式系统开发中,图形用户界面(GUI)的设计与实现往往是项目从“能用”到“好用”的关键一跃。不同于资源充沛的PC或移动平台,嵌入式设备的GUI需要在有限的CPU性能、内存空间…

2026/6/24 2:12:09阅读更多 →
Google AI Studio 300美元额度的真相与实战指南

Google AI Studio 300美元额度的真相与实战指南

1. 这300美金不是“送钱”,而是Google埋下的第一道技术门槛 你看到标题里那个醒目的“$300美金”时,第一反应可能是:又一个免费额度?领完就完事?我亲手试过——这300美金根本不是红包,而是一张入场券&…

2026/6/23 5:55:37阅读更多 →
TaskJuggler脚本编程入门:用代码实现自动化项目管理

TaskJuggler脚本编程入门:用代码实现自动化项目管理

TaskJuggler脚本编程入门:用代码实现自动化项目管理 【免费下载链接】TaskJuggler TaskJuggler - Project Management beyond Gantt chart drawing 项目地址: https://gitcode.com/gh_mirrors/ta/TaskJuggler TaskJuggler是一款强大的开源项目管理工具&#…

2026/6/24 0:02:41阅读更多 →
终极教程:使用angular-mobile-nav实现流畅的移动页面过渡效果

终极教程:使用angular-mobile-nav实现流畅的移动页面过渡效果

终极教程:使用angular-mobile-nav实现流畅的移动页面过渡效果 【免费下载链接】angular-mobile-nav An angular navigation service for mobile applications 项目地址: https://gitcode.com/gh_mirrors/an/angular-mobile-nav angular-mobile-nav是一款专为…

2026/6/24 0:02:41阅读更多 →
Wan2.1-Fun-V1.1-1.3B-InP Web UI使用教程:无需代码的AI视频创作

Wan2.1-Fun-V1.1-1.3B-InP Web UI使用教程:无需代码的AI视频创作

Wan2.1-Fun-V1.1-1.3B-InP Web UI使用教程:无需代码的AI视频创作 【免费下载链接】Wan2.1-Fun-V1.1-1.3B-InP 项目地址: https://ai.gitcode.com/hf_mirrors/PAI/Wan2.1-Fun-V1.1-1.3B-InP Wan2.1-Fun-V1.1-1.3B-InP是一款强大的AI视频创作工具,…

2026/6/24 0:02:41阅读更多 →