GitHub 多账户 SSH 配置指南

简介: 本文介绍了如何在同一台电脑上配置多个 GitHub 账户的 SSH 密钥。内容包括:检查现有密钥、生成新的 SSH 密钥、配置 SSH config 文件、将公钥添加到 GitHub、验证 SSH 连接、设置 Git 用户信息、创建工作区目录、使用不同账户克隆仓库,以及为每个仓库配置独立的用户信息等步骤。通过这些操作,可以实现在不同项目中使用不同的 GitHub 账户进行提交和管理。

1. 检查现有 SSH 密钥

# 进入SSH配置目录
cd ~/.ssh
# 查看目录内容(示例输出)
ls
config      id_rsa_account1.pub      id_rsa_account2.pub
id_rsa_account1  id_rsa_account2      known_hosts

2. 为每个账户生成 SSH 密钥(如果不存在)

# 为account1生成密钥
ssh-keygen -t rsa -b 4096 -C "account1@example.com"
# 文件名: id_rsa_account1
# 为account2生成密钥
ssh-keygen -t rsa -b 4096 -C "account2@example.com"
# 文件名: id_rsa_account2

3. 配置 SSH config 文件

编辑~/.ssh/config文件:

nano ~/.ssh/config

添加以下内容:

# account1配置(默认)
Host github.com-account1
  HostName github.com
  User git
  IdentityFile ~/.ssh/id_rsa_account1
# account2配置
Host github.com-account2
  HostName github.com
  User git
  IdentityFile ~/.ssh/id_rsa_account2

4. 将 SSH 公钥添加到 GitHub 账户

# 显示account1的公钥(复制此内容)
cat ~/.ssh/id_rsa_account1.pub
# 显示account2的公钥(复制此内容)
cat ~/.ssh/id_rsa_account2.pub

分别登录 GitHub 账户:

  1. account1:Settings > SSH and GPG keys > New SSH key > 粘贴id_rsa_account1.pub的内容
  2. account2:Settings > SSH and GPG keys > New SSH key > 粘贴id_rsa_account2.pub的内容

5. 验证 SSH 连接

# 测试account1连接
ssh -T git@github.com-account1
# 预期输出: Hi account1! ...
# 测试account2连接
ssh -T git@github.com-account2
# 预期输出: Hi account2! ...

6. 配置 Git 用户信息

# 设置全局默认用户为account1
git config --global user.name "Account One"
git config --global user.email "account1@example.com"

7. 创建工作区目录

# 创建account1工作区
mkdir -p ~/workspace/account1
cd ~/workspace/account1
# 创建account2工作区
mkdir -p ~/workspace/account2
cd ~/workspace/account2

8. 使用不同账户克隆仓库

# 使用account1克隆(默认)
git clone git@github.com-account1:account1/repo1.git
# 使用account2克隆(显式指定)
git clone git@github.com-account2:account2/repo2.git

9. 为 account2 仓库配置独立用户信息

# 进入account2的仓库
cd ~/workspace/account2/repo2
# 设置仓库级用户信息(覆盖全局配置)
git config user.name "Account Two"
git config user.email "account2@example.com"
# 验证配置
git config user.name     # 输出: Account Two
git config user.email    # 输出: account2@example.com

10. 验证提交身份

分别在两个工作区创建测试提交:

# 在account1工作区提交
cd ~/workspace/account1/repo1
touch test1.txt
git add .
git commit -m "Test by Account One"
git push origin master
# 在account2工作区提交
cd ~/workspace/account2/repo2
touch test2.txt
git add .
git commit -m "Test by Account Two"
git push origin master

访问 GitHub 仓库页面,确认两次提交分别显示为不同的账户。

关键配置对照表

配置项

account1 设置

account2 设置

SSH 配置别名

github.com-account1

github.com-account2

密钥文件名

id_rsa_account1

id_rsa_account2

克隆 URL 格式

git@github.com-account1:account1/repo.git

git@github.com-account2:account2/repo.git

Git 用户名

全局配置:Account One

仓库配置:Account Two

Git 邮箱

全局配置:account1@example.com

仓库配置:account2@example.com


目录
相关文章
|
4月前
|
JSON JavaScript API
MCP 实战:用配置与真实代码玩转 GitHub 集成
MCP 实战:用配置与真实代码玩转 GitHub 集成
1120 4
|
3月前
|
Linux 网络安全 开发工具
在Linux下配置gitee与Github的远程仓库
注意,git push后,是输入你的账号与密码。这个步骤可以通过特殊设置省去,但是一开始还是不要太省。
135 0
|
5月前
|
安全 Linux 网络安全
在Linux(CentOS和AWS)上安装更新的git2的方法并配置github-ssh
经过以上这些步骤,你现在就能在GitHub上顺利往返,如同海洋中的航海者自由驰骋。欢迎你加入码农的世界,享受这编程的乐趣吧!
184 10
|
8月前
|
Devops Shell 网络安全
git使用之如何将一套代码同时推送至github|gitee|gitcode|gitlab等多个仓库-含添加ssh-优雅草央千澈完美解决-提供整体提交代码
git使用之如何将一套代码同时推送至github|gitee|gitcode|gitlab等多个仓库-含添加ssh-优雅草央千澈完美解决-提供整体提交代码
314 16
git使用之如何将一套代码同时推送至github|gitee|gitcode|gitlab等多个仓库-含添加ssh-优雅草央千澈完美解决-提供整体提交代码
|
11月前
|
JavaScript Linux Windows
Typora图床配置(用自带的 PicGo-Core(command line) 插件GitHub
Typora图床配置(用自带的 PicGo-Core(command line) 插件GitHub
|
10月前
|
Linux 网络安全 开发工具
IDEA如何配置git和github
【11月更文挑战第14天】本指南详细介绍了如何在 IntelliJ IDEA 中配置 Git 和 GitHub,包括检查和设置 Git 路径、测试配置,以及通过 SSH 或 HTTPS 方式配置 GitHub 仓库的具体步骤。完成配置后,用户可在 IDEA 中轻松进行版本控制操作。
1498 0
|
网络安全 Windows
在Windows电脑上启动并配置SSH服务
在Windows电脑上启动并配置SSH服务
3020 0
|
Linux C++ Docker
【Azure Developer】在Github Action中使用Azure/functions-container-action@v1配置Function App并成功部署Function Image
【Azure Developer】在Github Action中使用Azure/functions-container-action@v1配置Function App并成功部署Function Image
|
网络安全 Shell 开发工具
|
24天前
|
JSON Kubernetes 安全
找到啦,我们已上车,Github 27000+ star,研发团队必备开源工具项目,真丝滑!!!
Trivy 是一款高效灵活的开源安全扫描工具,支持容器镜像、文件系统、Kubernetes 等多目标扫描,具备快速、易用、集成性强等特点,适用于 DevSecOps 全流程安全检测。

热门文章

最新文章