如何管理多个Github帐号的SSH密钥?

前段时间由于实验室项目工作需要,用实验室的公有邮箱额外注册了一个Github帐号用于内部项目的提交。然而,在一台机器上直接地使用多个帐号的SSH密钥是存在问题的,如果不经过谨慎的配置管理,将可能出现提交身份串用的问题。 分析🔍️ 假定目前我们已经为两个或者多个Github帐号配置了SSH密钥,那么我们要做就是利用SSH和Git工具的配置规则来更改不同场景下应该使用的SSH密钥。 OpenSSH的配置🔑️ 一般而言,OpenSSH的用户配置文件默认路径为~/.ssh/config(对于Windows系统,一般为用户目录下的.ssh/config)。当该文件不存在时,意味着本机尚未配置任何SSH连接,需要手动创建该文件: touch ~/.ssh/config 接下来,我们需要为不同的Github帐号设定不同的密钥认证文件,在~/.ssh/config中加入以下模板: # Personal Github Account Host github-mine HostName github.com User git IdentityFile ~/.ssh/key_mine # Lab Github Account Host github-lab HostName github.com User git IdentityFile ~/.ssh/key_lab 此处IdentityFile的含义即为指定SSH密钥文件。 经过以上配置,我们就可以使用我们自定义的规则去克隆在不同Github帐号下的仓库了。只需要将SSH克隆地址中的github.com替换为我们在SSH配置文件中的特定HOST即可,例如: git clone git@github.com:xxxx/repo.git # 正常地址 git clone git@github-mine:xxxx/repo.git # 使用帐号A的密钥 git clone git@github-lab:xxxx/repo.git # 使用其他帐号的密钥 同样地,我们也可以设定一个缺省值,即对于正常SSH克隆地址使用的密钥: # Default Account Host github.com HostName github.com User git IdentityFile ~/.ssh/key_default 结束了吗?🤔️ 显然,我们还没修改Git提交时的邮箱身份。对于不同帐号的仓库,我们需要单独设定其提交邮箱身份: cd xxx/xxx/repo_a # 到仓库a git config --local user....

November 20, 2022 · 1 min · 100 words · cc0de