有时候,我们需要在同一台电脑上使用多个Git账号的需求。其中有自己的个人Git账号,用于自己学习或者参与开源项目,也有工作用的Git账号。这篇文章将会介绍怎样在同一台Mac电脑上管理多个Git账号。
参考
查看已配置的Git账号列表
$ git config --list
credential.helper=osxkeychain
user.name=windyhill
user.email=windyhill@outlook.com
生成SSH keys
SSH(Secure Shell Protocol)是一种加密网络协议,用于在不安全的网络上提供一个安全通道,通过它可以连接并验证远程服务器和服务。使用SSH key,可以在电脑和GitHub之间建立安全的连接,而无需在每次访问GitHub时提供用户名和访问令牌。
我们需要给每个Git账号生成SSH key,即一对公司钥。例如一个公司Git账号,一个私人Git账号。
公司账号, 这里的邮箱为公司邮箱
$ ssh-keygen -t ed25519 -C "your_company_email@example_company.com"
个人账号,这里的邮箱为个人邮箱
$ ssh-keygen -t ed25519 -f id_ed25519_personal -C "your_personal_email@example.com"
添加到SSH agent信任列表
SSH agent 是一个密钥管理器,用来管理一个或多个密钥,并为需要使用 ssh key 的程序提供代理。
如果你的私钥使用密码加密了的话,每一次使用 SSH 密钥对进行登录的时候,都必须输入正确的密码短语。而 SSH agent 程序能够将已解密的私钥缓存起来,在需要的时候提供给SSH 客户端。这样,就只需在使用 ssh-add
将私钥加入 SSH agent 缓存的时候,输入一次密码短语就可以了。这为经常使用 SSH 连接用户提供了不少便利。
$ ssh-add ~/.ssh/id_ed25519
$ ssh-add ~/.ssh/id_ed25519_personal
查看已添加的密钥
$ ssh-add -l
删除某个密钥
$ ssh-add -d path_to_your_public_key
删除所有密钥
ssh-add -D
添加公钥到你的github
$ pbcopy < ~/.ssh/id_ed25519.pub
# $ pbcopy < ~/.ssh/id_ed25519_personal.pub
将已复制的公钥分别添加到对应的Github账号设置中的SSH key中。
在config文件配置多个ssh-key
打开~/.ssh
目录,看看有没有config文件,没有的话新建一个。分别配置公司和自己的ssh-key。
# 公司账号
Host your_company.gitlab.com # 将以下声明限制为仅针对那些匹配关键字后给出的模式之一的主机。模式与命令行上给出的主机名进行匹配。
HostName gitlab.your_company.cn # gitlab/github域名,必须写正确
User git # 用户
IdentityFile ~/.ssh/id_ed25519 # SSH 私钥文件具体路径
# 个人账号
Host github.com
HostName github.com
User git
IdentityFile ~/.ssh/id_ed25519_personal
连接测试
$ ssh -T git@your_company.gitlab.com
$ ssh -T git@github.com