聊下 git 多账户问题
git 多账户问题
标签(空格分隔):git github gitlab git多账户
- 背景
- git 多账号配置
- ssh 多密钥对配置
背景
在使用 git 的时候我们都会面临多账户问题,比较常见的就是公司内部的 gitlab,开源平台 github ,我们都需要在一台电脑上同时使用,这需要解决两个问题。
git 多账号配置
git config --global user.name 设置全局用户名
git config --global user.email 设计全局邮箱
git config --global 设置默认会作用所有的 git repository ,当我们分别 git clone 了 gitlab 、github 的 repository 时,需要分别为每个 git clone 下来的 repository 设置当前仓库的 user.name 、user.email 。
这个问题请参见本人的 git 系列文章 -> 聊下 git 使用前的注意事项
ssh 多密钥对配置
我们都知道 git 是基于 ssh 协议,git 通过 ssh agent 建立与远程链接和验证。
ssh 通过 rsa 私钥进行加密传输到 git server ,git server 再通过查找对应的 rsa pub key 进行解密,以验证是否当前提交过来的合法信息。
我们通过 ssh-keygen 分别创建不同的 rsa 密钥对,如果你没有特殊处理过公司内部私有的密钥对一般都是默认的名称 id_rsa、id_rsa.pub 。
如果我们是第一次创建 git 账号,第一次可以纯粹默认的创建过程
ssh-keygen -t rsa
一路 enter 回车,然后配置好公司内部的 gitlab ,正常提交。
然后再通过 ssh-keygen 创建的时候另起一个名字,比如 github 、github.pub 一对,这和创建默认的 id 、id.pub 没什么区别。
然后通过 ssh-add 将新创建的 github 专用密钥添加进 ssh-agent cache 中。
ssh-add ~/.ssh/github
然后查看 ssh agent 密钥 cache 列表。
ssh-add -l
再将 github.pub 公钥配置到我们的 github 的账号中就可以了。
然后就能正常使用gitlab、github 了。如果你不放心怕两个key 混淆了,你可以将其中一个key从ssh agent 中移除。
ssh-add -d ~/.ssh/github
然后在试着git push 代码,如果不错说明就正确了。
谢谢。