1.环境:mac电脑
2.问题:
我本身一个电脑,公司一个github账号,我自己一个github账号。
平时开发的时候,本地电脑已经有了一个ssh key,并且已经添加到公司的github账号上面去了。但是,我自己也有自己的github账号,平时想自己写点demo推送代码到自己的github上面去,但是生成ssh key 的过程中,一个ssh key只能对应一个github账号,我如果重新生成,就会覆盖以前的ssh key,这导致了矛盾。
生成ssh key的命令:
ssh-keygen -t rsa -C "youremail@xxx.com"
3.解决:
自己从网上搜索并且验证了可行性的解决方案:
<1>生成第一个ssh key(我本来电脑就有了,这里不执行这个命令了,不然会覆盖)
ssh-keygen -t rsa -C "youremail@xxx.com"
<2>生成第二个ssh key(我是从这一步开始执行的)
1.执行:
ssh-keygen -t rsa -C "youremail@xxx.com" -f ~/.ssh/名字(如my)
2.查看ssh目录,正常的话,要有my.pub文件, 执行:ll命令
3.生成完成以后,要新建config配置文件,这里的config不用加后缀名,执行命令:
vim config
config的内容如下:
# 这个是原来的key
# github
Host github.com
HostName github.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/id-rsa
# 这个是新加的key
# github_2
Host me.github.com //(此处的host名是自己取的,你也可以自己改,记得删除此行注释)
HostName github.com //(gitlab的话写gitlab.com,记得删除此行注释)
PreferredAuthentications publickey
IdentityFile ~/.ssh/my //(这是你的key的路径名,记得删除此行注释)
4.将自己新生成的ssh key(即my.pub里面的内容)添加到另一个github账号上面,就是点击自己的头像-->setting--->添加ssh....(不会的话,自己百度github 怎么添加ssh key)
<3>测试是否配置成功
1.测试最初的github配置命令:
ssh -T git@github.com
如果出现:hi ....表示成功了。
2.同理,测试新添加的github配置命令:(即测试my.pub的那个ssh key)
<4>这时候克隆项目的时候 ,我们可以不用https://github.com/用户名/项目名.git.开头的那种克隆了,而是使用一下子命令:
1.最初的github克隆:
#github.com对应的最初账号
git clone git@github.com:username/repo.git
2.新添加的github克隆:
#me.github.com对应的那个账号
git clone git@me.github.com:username/repo.git
完结。