git ssh key的多账号管理

大家好,很开心跟大家分享,git ssh key的多账号管理。写这篇文章的起因是我公司使用的gitlab,个人使用的github,这两者的邮箱不同,ssh key 也不同,生成第二个git的key的时候会覆盖第一个的key,必然有一个用不了。百度一大波,终于搞定!

其实在~/.ssh目录下新建一个config文件配置一下,就可以解决问题。详细步骤跟大家讲一下:

第一步:生成ssh key ,github 使用邮箱[email protected]、gitlab使用邮箱[email protected]举例,各位可以改成自己的,在命令行(或者cmder)输入 ssh-****** -t rsa -C "[email protected]" , 回车,并给存放可以的文件命名为id_rsa_hub,接着两个回车,github公钥私钥生成。git ssh key的多账号管理

输入 ssh-****** -t rsa -C "[email protected]" , 回车,并给存放可以的文件命名id_rsa,接着两个回车,gitlab公钥私钥生成。

第二步:查看以上两对公钥私钥

git ssh key的多账号管理


第三步:sublime打开id_rsa_hub.pub,复制备用,登录github,找setttings,ssh key ,添加这个公钥,同理打开id_rsa.pub登录gitlib,添加公钥。

第四步:创建并修改config文件 ,命令行输入touch config,添加以下内容,特别注意,缩进行,只能缩进一行。

git ssh key的多账号管理

第五步:如果之前有设置全局用户名和邮箱的话,需要unset一下,可通过$ git config --list来查看全局配置,

$ git config --global --unset user.name $ git config --global --unset user.email

可以在不同的仓库下设置局部的用户名和邮箱用不同的账号登录,比如在公司的github项目下: $ git config user.name "user1" $ git config user.email "[email protected]"

第六步:测试,如果没有known_hosts文件,会报错哦,可以在测试的时候,输入yes生成。

git ssh key的多账号管理

$ ssh -T [email protected] #输出:Hi user1! You've successfully authenticated, but GitHub does not provide shell access. $ ssh -T [email protected]的IP #输出:Hi [email protected]**, this is [email protected]

测试成功。如果出什么问题,可以通过ssh -vT [email protected]来输出编译信息,然后根据编译信息去解决问题。

小知识分享--------

git命令每次提交都要输入用户名和密码的解决办法:
1)git remote rm origin 
2)git remote add origin https://username:[email protected]/username/test.git
3)git push origin master