同一台电脑使用多个 GitHub/GitLab 账号?一键搞定公钥配置!
2023-12-21 00:27:37
导言
在开发过程中,我们经常需要在不同的 Git 仓库之间切换账号,而 GitHub 和 GitLab 作为流行的版本控制平台,无疑是首选。但当我们需要在同一台电脑上使用多个 GitHub/GitLab 账号时,公钥冲突就会成为一大阻碍。本文将深入探讨如何在同一台电脑上配置多个 GitHub/GitLab 账号的 SSH 公钥,解决公钥冲突问题,让你畅享无缝协作与开发。
SSH 公钥机制
GitHub 和 GitLab 使用 SSH(安全外壳协议)进行远程连接,而 SSH 依靠公钥密码学来验证用户的身份。每个用户都有自己的公钥和私钥对,公钥存储在服务器上,私钥存储在本地电脑上。当用户尝试连接到服务器时,服务器会将一个随机字符串发送到客户端,客户端使用自己的私钥对该字符串进行加密并发送回服务器。服务器使用存储的公钥解密字符串,如果解密成功,则验证通过,用户可以连接到服务器。
公钥冲突
当我们尝试在同一台电脑上使用多个 GitHub/GitLab 账号时,就会遇到公钥冲突问题。这是因为每个账号都有自己的公钥,而同一台电脑上只能有一个公钥与 SSH 代理关联。当我们尝试添加第二个账号的公钥时,SSH 代理会提示我们当前公钥已被他人使用,请重新生成一个新的公钥。
解决公钥冲突
要解决公钥冲突,我们需要为每个 GitHub/GitLab 账号生成一个唯一的 SSH 公钥。具体步骤如下:
-
生成新的 SSH 公钥对:
- 打开终端窗口,运行以下命令生成新的 SSH 公钥对:
ssh-keygen -t ed25519 -C "your_email@example.com"
- 将 "your_email@example.com" 替换为你的电子邮件地址。
- 系统会提示你输入一个密钥文件的保存位置和一个密码短语,你可以根据需要进行设置。
- 打开终端窗口,运行以下命令生成新的 SSH 公钥对:
-
将公钥添加到 GitHub/GitLab:
- 登录你的 GitHub/GitLab 账号,转到 "SSH and GPG keys" 页面。
- 点击 "New SSH key" 按钮,粘贴你刚生成的公钥。
- 为公钥输入一个简短的标题,然后点击 "Add SSH key" 按钮。
-
配置 SSH 代理:
- 在终端窗口中,运行以下命令配置 SSH 代理:
ssh-add ~/.ssh/id_ed25519
- 将 "~/.ssh/id_ed25519" 替换为你的私钥文件的路径。
- 在终端窗口中,运行以下命令配置 SSH 代理:
-
测试 SSH 连接:
- 运行以下命令测试 SSH 连接:
ssh -T git@github.com
- 如果连接成功,你会看到以下输出:
Hi username! You've successfully authenticated, but GitHub does not provide shell access.
- 运行以下命令测试 SSH 连接:
使用多个账号
配置好 SSH 公钥后,你就可以在同一台电脑上使用多个 GitHub/GitLab 账号了。只需在终端窗口中输入以下命令,然后按照提示输入相应账号的密码即可:
ssh-add -K ~/.ssh/id_ed25519_account_2
将 "~/.ssh/id_ed25519_account_2" 替换为第二个账号的私钥文件路径。
结语
通过本文介绍的方法,你可以轻松地在同一台电脑上配置多个 GitHub/GitLab 账号的 SSH 公钥,解决公钥冲突问题。这将极大地提升你的开发效率,让你在不同的账号之间无缝切换,畅享协作与开发的乐趣。