单机配置多个Git账号

主要流程参考:http://www.chenyp.com/2017/08/11/multiple-git-account/
有一些需要特别注意:

背景:

1.需要在一台电脑登录GitHub账户和公司gitlab账户

2.gitlab 使用access token + ssh 登录

 

注意步骤:

1.配置多个git账户都需要先生成公钥和私钥

ssh-keygen -t rsa -C "xxx.com" -b 4096

回车后可以自己定义保存的位置和名称 或者使用默认(默认仅限第一次生成使用,否则会覆盖)

xxx\.ssh\Gitlab_rsa

2.在目录下(默认~/.ssh)会生成

~/.ssh
   Gitlab_rsa
   Gitlab_rsa.pub

3.将Gitlab_rsa.pub中内容拷贝到gitlab--seetings--ssh-keys中,保存

如果只是这样,从Gitlab上clone代码时,相较于第一次的区别,会提示你输入密码,但其实你根本不知道密码是什么。

为什么会这样,因为私钥文件不对。在没有任何额外配置的情况下,Git客户端会使用默认的私钥文件id_rsa,而不是为Gitlab生成的Gitlab_rsa。因此我们需要添加一些配置来保证Git客户端在和不同的Git Server通信时使用对应的私钥文件。

临时解决方案

将新的私钥加入到 ssh-agent 中即可。ssh-agent是一种控制用来保存公钥身份验证所使用的私钥的程序,其实ssh-agent就是一个密钥管理器,运行ssh-agent以后,使用ssh-add将私钥交给ssh-agent保管,其他程序需要身份验证的时候可以将验证申请交给ssh-agent来完成整个认证过程,执行如下命令添加新的私钥到ssh-agent中:

eval $(ssh-agent -s)
ssh-add ~/.ssh/Gitlab_rsa

之后就可以正常使用了,不过这种方案是临时的,一旦你关闭掉当前的terminal,下次又要重复输入上面的命令,下面的方案可以避免这种重复输入的麻烦。


永久解决方案

在用户主目录(~/.ssh)创建名称为config的文件,此文件用于配置Git服务器对应的私钥

主要增加修改内容为HostIdentityFile根据实际情况修改即可,Host 也可以输入IP,不要加上端口(即使部署的不是80或者443端口也不用加)。同理,如果还有第三个或更多,继续生成不同的文件并加入到config文件中即可,之后就可以使用了。

# Read more about SSH config files: https://linux.die.net/man/5/ssh_config
Host xxx-173-Linux
    HostName 172.xx.xxx.xxx
    User xxx
    Port 22
    IdentityFile /Users/xxx/.ssh/id_rsa

Host git.公司gitlab名.com
    #HostName git.公司gitlab名.com
    PreferredAuthentications publickey
    #User xxx
    IdentityFile /Users/xxx/.ssh/Gitlab_rsa

4.测试

通过如下的命令可以进行测试,格式:ssh -T git@Host,如:

ssh -T git@git.公司gitlab名.com

成功会出现

5.特别注意事项,如果此前设置的全局用户信息不是新增的用户,需要修改

git config user.name "ryan"
git config user.email "ryan@example.cn"

6.之后就按照正常git 提交修改代码操作即可

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值