一.虚拟两个不同代码托管网站的网址和帐号
帐号一:firstname
帐号一注册的网站:github.com
帐号二:secondename
帐号二注册的网站:gitlab.com
二.配置帐号一
生成ssh密钥:
a,安装git;
b,git config --global user.name "username1"//github的帐号名(也可以自定义)
c,git config --global user.email "emailadress1"//github的邮箱地址(也可以自定义)
d,生成ssh密钥:ssh-keygen -t rsa -C "githubEmailadress"//一定是github.com网站上的邮箱地址,不可以自定义
e,一路回车
f,在github.com网站上添加公钥,即~/.ssh/id_rsa.pub中的所有内容
三.配置帐号二
生成ssh密钥
a,ssh-keygen -t rsa -C "gitlabEmailadress"//gitlab.com网站上的邮箱,不能自定义
b,回车后提示设置私钥文件的文件名,我们输入id_rsa_gitlab即可,默认保存在和第一个帐号私钥文件同级目录下,可以自定义路径
c,一路回车
d,新密钥添加到SSH agent中:
ssh-agent bash
ssh-add ~/.ssh/id_rsa_gitlab //第二个帐号私钥文件的完整路径
e,新生成的id_rsa_gitlab.pub文件中存放着第二个帐号的公钥,将全部内容复制,添加到gitlab.com网站上
四.在.ssh目录下创建config文件(没有后缀名)
文件内容如下:
#github user
Host github
HostName github.com
User git
IdentityFile /home/lh/.ssh/id_rsa
#gitlab user
Host gitlab
HostName gitlab.com
User git
IdentityFile /home/lh/.ssh/id_rsa_gitlab
五,测试能否和对应的代码托管网站通信
第一个帐号:ssh -T github //github是config文件中我们定义的Host的值,一般我们测试连通性时要输入:ssh -T github.com 需要网站的域名,在配置之后直接使用主机名即Host的值代替网站名
第二个帐号:ssh -T gitlab
六,clone代码
原来的命令:git clone git@github.com:firstname/demo.git
现在的命令:git clone github:firstname/demo.git