git下多个账号配置,同一电脑上多个sshkey的管理

需求:
公司有gitee账号,自己有gitee账号,想在git上同时使用,两者互不干扰。
 
思路:
管理两个SHH key。
 
解决方案:
 
一、生成两个SSH key
 
为了举例方便,这里使用“my”和“mirror”两个账户。下同。
 
$ ssh-keygen -t rsa -C "my@gmail.com"
 
$ ssh-keygen -t rsa -C "mirror@gmail.com"
 
不要一路回车,分别在第一个对话的时候输入重命名(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)

 

 

 
如果还是不知道如何生成公钥?可以搜索 码云帮助文档 找到 3.2 公钥认证管理 
 
 
 
 
 
posted @ 2020-03-18 15:06  我若亦如风  阅读(835)  评论(0编辑  收藏  举报