夏树正茂

花有重开日,人无再少年.

一台电脑设置多个github账号

| Comments

前言:

很多时候我们需要在一台电脑上配置多个git账号用于不同的项目,例如公司代码管理的git账户以及自己的github账户,下面就简单介绍下具体步骤。

账户信息配置

账户信息的配置可以体现在使用git进行项目管理时的个人信息。对于global范围的账户信息,可以使用以下操作进行设置或者取消:

1
2
3
4
5
6
7
8
9
10
11
# 通过以下语句查看设置的账户信息
$ git config --global user.name
$ git config --global user.email

# 取消设置的全局账户
$ git config --global --unset user.name
$ git config --global --unset user.email

# 通过以下语句设置的账户信息
$ git config --global user.name "your name"
$ git config --global user.email "your email"

对于不同的项目,如果你需要设置不同的用户信息,可以cd到该目录下,进行以上的设置,只是在设置的时候去掉--global参数。

SSH配置

在个人电脑上使用如下命令可生产SSH KEY

1
$ ssh-keygen -t rsa -C "youremail@email.com" -f ~/.ssh/id_rsa_one

这时会在用户根目录下生成一个.ssh文件夹,一个私钥:id_rsa_one,一个公钥:id_rsa_one.pub,该公钥和私钥包含了你邮箱的信息,具有随机不可复现性。

有多个github账户时,需要进行多次生产SSH-KEY的操作,例如你还有另一个账户:

1
$ ssh-keygen -t rsa -C "youremail_two@email_two.com" -f ~/.ssh/id_rsa_two

这时在.ssh文件夹下就会存在如下文件:

id_rsa_one
id_rsa_one.pub
id_rsa_two
id_rsa_two.pub
known_hosts

然后需要把刚才生产的.pub后缀的公钥添加到远程主机中去。

本地需要识别刚才生产的SSH-KEY,就需要使用一下命令进行添加:

1
2
3
# 使用-K可以将私钥添加到钥匙串,不用每次开机后还要再次输入这条命令
$ ssh-add -K ~/.ssh/id_rsa_one        
$ ssh-add -K ~/.ssh/id_rsa_two

可以在添加前使用下面命令删除所有的key:

1
$ ssh-add -D

最后可以通过下面命令,查看key的设置:

1
$ ssh-add -l

当我们作为以上的操作后就需要修改.ssh文件夹下的config文件信息,以确保我们不同的项目使用不同的私钥进行操作校验。

1
2
3
$ cd ~/.ssh/
# 没有config文件时,用以下命令生成
$ touch config

打开.ssh文件夹下的config文件,进行配置:

1
2
3
4
5
6
7
8
9
10
11
12
#githun one
Host one.github.com #这里名称可以随意取,和下面的不一样就行
HostName github.com
User git
IdentityFile ~/.ssh/id_rsa_one

#github two
Host two.github.com
HostName github.com
#Port 7999
User git
IdentityFile ~/.ssh/id_rsa_two

需要注意的是User需要设置为git

设置好以上信息后就可以通过以下命令来验证设置是否正确:

1
2
3
$ ssh -vT git@one.github.com
# 执行后如果出现信息,就表示验证通过了:
Hi yourname! You've successfully authenticated, but GitHub does not provide shell access.

Comments