git配置多用户管理

1,196

一般来说,公司的项目可能放在gitlab仓库,自己的项目存放在github仓库,这时怎么同时管理两个仓库的代码呢,本文介绍了git多用户的配置。

1 清除全局配置(可忽略)

首先查看git的全局配置,

git config --global --list

会列出git全局的name和email信息,可执行以下命令进行清除

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

2 生成钥匙对

钥匙文件默认在~/.ssh目录,可以先清理目录中的id_rsa,id_rsa_pub之类的文件。 然后通过指令生成新的钥匙对文件

生成github钥匙对文件,通过-C+邮箱:

ssh-keygen -t rsa -C “github账号邮箱”

回车后,会有以下提示,

Generatingpublic/privatersa key pair.Enter fileinwhich to save the key (/Users/jitwxs/.ssh/id_rsa):

这里是让输入公钥名称,默认是id_rsa,因为我们是配置多用户,为了更好的区分,这里输入id_rsa_github。之后一路回车,github的钥匙对生成完毕。 相同的操作生成gitlab钥匙对

ssh-keygen -t rsa -C “gitlab账号邮箱”

生成的公钥名称为id_rsa_gitlab

3 添加SSH Keys

将2中生成的id_rsa_github.pubid_rsa_gitlab.pub文件中的内容,分别加入到github和gitlab的SSH Keys中

4 添加私钥

公钥已经在3中添加到了github和gitlab服务器上,我们还需要将私钥添加到本地,不然本地是无法使用的,具体如下

ssh-add ~/.ssh/id_rsa_github // 将 GitHub 私钥添加到本地
ssh-add ~/.ssh/id_rsa_gitlab // 将 GitLab 私钥添加到本地

执行完毕后可以通过ssh-add -l指令验证,结果会出现github和gitlab的邮箱信息,表示添加成功。

5 管理秘钥

公钥和秘钥添加完成后,下面还需要在本地创建一个秘钥配置文件,通过这一文件,实现根据仓库的remote链接地址自动选择合适的私钥。 编辑~/.ssh 目录下的 config 文件,如果没有,请创建。

vim ~/.ssh/config

添加以下内容,注意github和gitlab的仓库地址的用户名

Host github
HostName **仓库地址**
User **用户名**
IdentityFile ~/.ssh/id_rsa_github

Host gitlab
HostName **仓库地址**
User **用户名**
IdentityFile ~/.ssh/id_rsa_gitla

可以配置多个用户信息,每个用户配置包含以下几项: Host:仓库网站的别名,随意取 HostName:仓库网站的域名(PS:IP 地址应该也可以,如github.com) User:仓库网站上的用户名 IdentityFile:私钥的绝对路径

配置完成后,可以用ssh -T git@命令检测下配置的 Host 是否是连通的,已github仓库为例,仓库地址为github.com

ssh -T git@github.com

6 仓库配置

如果想要单独设置某个仓库的用户信息,可在这一仓库下执行以下指令设置

git config --local user.name "用户名"
git config --local user.email "邮箱"

或者是进入本地仓库根目录,在.git/config文件中添加用户信息

vim .git/config

添加以下内容(一定要注意格式,不然会出各种问题)

[user]
      user = yonghuming
      email = yonghuyouxiang@qq.com

7 开机启动ssh-add(很重要)

以上都完成后,就可以在本地分别操作github和gitlab仓库中的代码了。但是也会有个问题,每次关机重启后,本地都无法对远端仓库进行处理,提示Permission denied, please try again. 造成这一问题的原因是没有进行上文4中添加私钥到本地的操作(ssh-add指令没有被记住,所以在重启电脑后,需要重新执行)。 推荐解决方案:mac中,新建一个应用程序类文件,将4中的指令添加到应用中,并将这一应用加入登录项。

7.1 创建一个Automator 应用程序类型文件

应用程序中找到Automator(自动操作) =》 新建文稿 =》 应用程序 =》 选取 =》 资源库(运行Shell脚本)=》 添加指令(4中添加私钥到本地的指令,如下) =》 保存到指定位置(自定义名称、保存位置,下一步要用) =》 至此会生成一个app(ssh-add private keys)

ssh-add ~/.ssh/id_rsa_github
ssh-add ~/.ssh/id_rsa_gitlab

在这里插入图片描述 在这里插入图片描述 在这里插入图片描述

7.2 添加登录项

系统偏好设置 =》 用户与群组 =》 登录项 =》 添加7.1中的app =》 完毕

Git 多用户配置

解决重启后私钥失效的问题