同一台电脑上使用两个 github 账号

  1. 生成多个 SSH key

    1
    2
    ssh-keygen -t rsa -f ~/.ssh/id\_rsa\_one -C “one@xxx.com”
    ssh-keygen -t rsa -f ~/.ssh/id\_rsa\_two -C “two@xxx.com”

    这样会在 ~/.ssh 目录下生成四个文件:

    • id_rsa.one //账号 one 的私钥
    • id_rsa.one.pub //账号 one 的公钥
    • id_rsa.two
    • id_rsa.two.pub
  2. 创建配置文件 config

    ~/.ssh 目录下新建 config 文件(如果有则直接修改),令不同 Host 实际映射到同一 HostName,但密钥文件不同。

    加上以下内容

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    ## one (first account)
    Host one.github.com # 别名
    HostName github.com # 实际的 url
    PreferredAuthentications publickey
    User one
    IdentityFile ~/.ssh/id_rsa_one

    ## two(second account)
    Host two.github.com
    HostName github.com
    PreferredAuthentications publickey
    User two
    IdentityFile ~/.ssh/id_rsa_two
  3. 添加 SSH key 及 测试

    分别登陆两个 github 账号,在 Settings —> SSH and GPG keys 中,点击 “new SSH key”,把 id_rsa.one.pubid_rsa.two.pub 这两个公钥的内容分别添加到相应的账号中。

    为了确认我们可以通过 SSH 连接 github,可通过输入下面命令来验证

    $ssh -T git@one.github.com

    如果看到下面信息,就说明连接正常。

    1
    2
    Hi one! You’ve successfully authenticated, but Git  
    Hub does not provide shell access.

    该步骤详细内容可以参考教程:使用 SSH 连接 github

  4. 用户名和邮箱配置

    注意:因为一台电脑上配置了多个 github 账号,所以就不能再配置全局的用户名和邮箱了,而是在不同的仓库下,如果需要连接不同的 git 账号,配置相应的局部用户名和邮箱即可,如果之前配置过全局的用户名和邮箱,需要取消配置。

    1
    2
    3
    4
    5
    6
    7
    ## 取消全局 用户名/邮箱 配置
    git config --global --unset user.name
    git config --global --unset user.email

    ## 设置局部 用户名/邮箱 配置
    git config user.name “xxxx”
    git config user.email “xxxx@xx.com”
  5. 使用 git

    1
    2
    3
    4
    5
    6
    7
    # 原来写法
    $ git clone git@github.com: 用户名/abc.git


    # 现在写法
    $ git clone git@one.github.com: one的用户名/abc.git
    $ git clone git@two.github.com: two的用户名/abc.git

同一台电脑上使用两个 github 账号
https://flepeng.github.io/049-Git-同一台电脑上使用两个-github-账号/
作者
Lepeng
发布于
2024年10月8日
许可协议