ubuntu之 一台机器如何配置多个git账号
【背景】
作为一个程序员,一定会有一个私人git(gitee),用来存放一些自己的经验积累,而在工作的时候也必然会有自己的工作git。
那么,如果在一台机器上把两个账号都配置上呢?
一、首先获取工作ssh-key
chen@DESKTOP-35RFC6V:~$ cd ~/.ssh/
chen@DESKTOP-35RFC6V:~/.ssh$ ssh-keygen -t rsa -C "aaa@163.com"
Generating public/private rsa key pair.
Enter file in which to save the key (/home/chen/.ssh/id_rsa):
之后,一路回车到底
chen@DESKTOP-35RFC6V:~/.ssh$ ls
config id_rsa id_rsa.pub
将id_rsa.pub(公钥)的内容填到对应账号setting下的SSH keys中。
二、接下来获取私人ssh-key
chen@DESKTOP-35RFC6V:~$ cd ~/.ssh/
chen@DESKTOP-35RFC6V:~/.ssh$ ssh-keygen -t rsa -C "bbb@163.com"
Generating public/private rsa key pair.
Enter file in which to save the key (/home/chen/.ssh/id_rsa):id_rsa_own
这次可要看清楚要输入保存的key的名字了,id_rsa_own,当然这个名字是自己起的。只要别叫id_rsa就好。
chen@DESKTOP-35RFC6V:~/.ssh$ ls
config id_rsa id_rsa.pub id_rsa_own id_rsa_own.pub
同样,将id_rsa_own.pub(公钥)的内容填到对应账号setting下的SSH keys中。
然后还有一步操作,将私钥交给agent管理,因为默认只读取id_rsa,为了让SSH识别新的私钥,需将其添加到SSH agent中:
chen@DESKTOP-35RFC6V:~/.ssh$ ssh-add ~/.ssh/id_rsa_own
如果出现Could not open a connection to your authentication agent的错误,就试着用以下命令:
chen@DESKTOP-35RFC6V:~/.ssh$ ssh-agent bash
chen@DESKTOP-35RFC6V:~/.ssh$ ssh-add ~/.ssh/id_rsa_own
三、配置.ssh/config
chen@DESKTOP-35RFC6V:~/.ssh$ vi config
没有config文件的话,自己创建一个
chen@DESKTOP-35RFC6V:~/.ssh$ cat config
Host gitwork
HostName github.com
User git
IdentityFile /home/chen/.ssh/id_rsa
Host gitown
HostName gitee.com
User git
IdentityFile /home/chen/.ssh/id_rsa_own
这里要注意了:不要硬复制,这其中每一项是有其涵义的。
比如我的私人git clone的ssh是git@gitee.com:chen/test_own.git
那么我对应到上面config中的配置就是
Host gitown
HostName gitee.com
User git
IdentityFile /home/chen/.ssh/id_rsa_own
当然gitown这个名字是随意取得。当我需要git clone得时候这样执行就好了。
chen@DESKTOP-35RFC6V:~/own$ git clone gitown:chen/test_own.git
chen@DESKTOP-35RFC6V:~/own$ ls
test_own
同理,另一个git也都配置了。
四、配置gitconfig
在git中,我们使用git config 命令用来配置git的配置文件,git配置级别主要有以下3类:
1、仓库级别 local 【优先级最高】
2、用户级别 global【优先级次之】
3、系统级别 system【优先级最低】
所以,按需配置。
比如我的私人库暂时只有一个,那么就不需要配置用户级别,只需要配置仓库级别就完全足够了。
chen@DESKTOP-35RFC6V:~/own/test_own$git config --local user.email "aaa@163.com"
chen@DESKTOP-35RFC6V:~/own/test_own$git config --local user.name "chen"
而我工作的代码库就比较多了,就需要配置用户级别的
chen@DESKTOP-35RFC6V:~$git config --global user.email "workchen@xxx.com"
chen@DESKTOP-35RFC6V:~$git config --global user.name "workchen"
全部完毕。
参考链接:
https://www.cnblogs.com/fireporsche/p/9359130.html
https://blog.csdn.net/hd243608836/article/details/109198988