在同一台电脑上用多个GitHub账户可能有点难搞,特别是要管理不同的SSH密钥和仓库。不过别担心,在这篇文章里,我会教你如何在电脑上设置和使用多个GitHub账户,让你的开发过程更高效、更井然有序。
了解 SSH 密钥
SSH(Secure Shell)密钥是一种用于在计算机和像GitHub这样的远程服务器之间进行安全身份验证的方法。当连接到远程服务器时,服务器会根据它的授权密钥列表来检查提供的公钥。如果提供的密钥与服务器上的密钥匹配,就能获得访问权限。
对于每个GitHub账户使用不同的SSH密钥可以帮助你保持工作和个人存储库的独立性和安全性。
生成 SSH 密钥
生成新的 SSH 密钥
要为每个 GitHub 帐户生成新的 SSH 密钥,打开终端并运行以下命令,将“[email protected]”替换为与 GitHub 帐户关联的电子邮件地址:
ssh-keygen -t ed25519 -C "[email protected]"
当提示输入保存密钥的文件时,要选择唯一的名称和位置,例如 ~/.ssh/id_ed25519_account1。
将 SSH 密钥添加到 SSH 代理
eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_ed25519_account1
对要添加的每个 GitHub 帐户重复这些步骤,记住将文件路径替换为之前选择的唯一名称。
如果你对这两行命令有好奇心,可以看看下面的原理:
eval "$(ssh-agent -s)"
:这行命令是启动ssh-agent。ssh-agent是一个程序,用于保存私钥和公钥,当你需要使用这些密钥进行SSH连接时,ssh-agent可以为你提供这些密钥。eval
是一个shell命令,用于执行后面的命令并返回结果。$(ssh-agent -s)
会启动ssh-agent并返回一些设置环境变量的命令,eval
会执行这些命令,以便后续的命令可以找到ssh-agent。ssh-add ~/.ssh/id_ed25519_account1
:这行命令是将私钥~/.ssh/id_ed25519_account1
添加到ssh-agent中。这样,当你需要使用这个私钥进行SSH连接时,就不需要每次都输入私钥的密码了,ssh-agent会自动为你提供这个私钥。
配置 GitHub 帐户
配置第一个 GitHub 帐户
要配置您的第一个 GitHub 帐户,请在 ~/.ssh 目录中创建一个名为 config 的新文件。在此文件中,添加以下行,将“Account1”替换为您的第一个帐户的描述性名称:
要配置你的第一个GitHub账户,请在~/.ssh目录下创建一个名为config的新文件。在这个文件中,添加以下行,将”Account1″替换为你第一个账户的描述性名称:
Host github.com-Account1
HostName github.com
User git
IdentityFile ~/.ssh/id_ed25519_account1
配置您的第二个 GitHub 帐户
要配置第二个 GitHub 帐户,请将以下行添加到同一配置文件中,将“Account2”替换为第二个帐户的描述性名称,并更新文件路径以匹配第二个 SSH 密钥:
Host github.com-Account2
HostName github.com
User git
IdentityFile ~/.ssh/id_ed25519_account2
测试配置
要测试你的配置,请为每个账户运行以下命令,并将”github.com-Account1″替换为配置文件中正确的主机值:
ssh -T [email protected]
如果配置正确,您应该会看到一条来自 GitHub 的消息,欢迎作为与相应 SSH 密钥关联的用户。
管理多个存储库
clone存储库
要从你的GitHub账户中克隆一个仓库,请使用以下命令,将”github.com-Account1″替换为正确的主机值,将”your_username”和”your_repository”替换为正确的信息:
git clone [email protected]:your_username/your_repository.git
当使用多个 GitHub 帐户时,Git 别名可以简化您的工作流程。例如,您可以使用特定帐户信息为常用命令创建别名,例如克隆存储库。要创建别名,请运行以下命令
git config --global alias.clone-account1 'clone [email protected]'
现在,当想从第一个帐户克隆存储库时,可以使用别名:
git clone-account1:your_username/your_repository.git
有用,正好新申请了一个github账号使用