git下多个账号配置,同一电脑上多个sshkey的管理
需求:
公司有gitee账号,自己有gitee账号,想在git上同时使用,两者互不干扰。
思路:
管理两个SHH key。
解决方案:
一、生成两个SSH key
为了举例方便,这里使用“my”和“mirror”两个账户。下同。
不要一路回车,分别在第一个对话的时候输入重命名(id_rsa_gitee_my和id_rsa_gitee_mirror),这样会生成两份包含私钥和公钥的4个文件。
注1:ssh-keygen是linux命令,可以让两个机器之间使用ssh而不需要用户名和密码
注 2:一定要在~/.ssh路径下运行命令行,不然生成的文件不会出现在当前目录
注3:config文件是自己添加的,known_hosts文件是后期自动生成的
二、添加私钥(可忽略,我没用到)
1、打开ssh-agent
(1)如果你是github官方的bash:
$ ssh-agent -s
(2) 如果你是其它,比如msysgit:
$ eval $(ssh-agent -s)
2、添加私钥
$ ssh-add ~/.ssh/id_rsa_gitee_my
$ ssh-add ~/.ssh/id_rsa_gitee_mirror
三、创建config文件
$ touch config
此时会出现空的config文件,然后添加如下内容:
# my
Host my
HostName gitee.com
User git
IdentityFile ~/.ssh/id_rsa_gitee_my
# mirror
Host mirror
HostName gitee.com
User git
IdentityFile ~/.ssh/id_rsa_gitee_mirror
注:config每行之前不要留空格,同时注意config文件的编码格式,最好是在vim下自己手写(没几行代码)
在.ssh目录创建config文本文件并完成相关配置(最核心的地方)
以下错误是前车之鉴:
这个就是我在Notepad++编写的,上网查找说是空格影响的,把空格删了,发现还是有问题,最后在vim里写了下,好使了,回过头来发现Notepad在编辑的时候把编码改了
四、部署SSH key
分别登陆两个gitee账号,进入设置 ->安全设置 -> ssh公钥
把下面两个公钥的内容分别添加到相应的gitee账号中。
五、远程测试【可跳过】
$ ssh –T git@my
$ ssh –T git@mirror
出现以下情况就算是完成了:
六、使用
1、clone到本地
(1)原来的写法:
$ git clone git@github.com: mirror的用户名
(2)现在的写法:
$ git clone git@my:my的用户名/项目名.git
$ git clone git@mirror: mirror的用户名/项目名.git
2、记得给这个仓库设置局部的用户名和邮箱:
$ git config user.name "my_name" ; git config user.email "my_email"
$ git config user.name "mirror_name" ; git config user.email "mirror_email"
配置全局用户名和邮箱
$ git config global user.name "my_name" ; git config global user.email "my_email"
如果你是协同开发的,那你应该是有自己的分支,这是你需要在本地添加远程仓库地址,如有如下命令即可:
$ git remote add sivan(别名,自己随意起) 仓库的url(可以是ssh,也可以是https)