Mac 多 Git 账户配置
通常公司代码一般托管在公司自建 Gitlab 服务上,自己的代码托管在 GitHub 或者 Coding 这样的网站上。Git 账户经常切换非常不方便,这就需要配置多个 Git 账户,以向不同的网站 push 代码。本文将介绍如何在 Mac 上配置多个 Git 账户,以及快速切换管理。
1.生成密钥
Mac 中密钥文件都保存在 /Users/你的用户名/.ssh
目录下,如果没有该目录手动创建即可。进入到该目录后根据邮箱生成密钥:ssh-keygen -t rsa -C ‘邮箱账号'
注意红框处
id_rsa_testgit
,此处是指定密钥名称,可以根据不同的账号命名,方便区分。如果不指定名称会使用默认值:id_rsa
,再次生成密钥会覆盖上一次的密钥,因此每次都要指定不同的名称。名称输入完后一直回车直到密钥生成。
使用 ssh-keygen
命令,分别生成 GitHub 和 Coding 的密钥。每组密钥其中以.pub结尾的是公钥,另一个是私钥。查看生成的所有密钥:
1 | ~/.ssh ls -l |
2.托管网站配置公钥
2.1 GitHub 配置
登录 GitHub,按照顺序到达指定页面 Settings --> SSH and GPG keys --> New SSH Key
。
在命令行中执行命令查看并复制公钥内容:cat ~/.ssh/id_rsa_github.pub
。
在打开的页面的 Key 输入框中粘贴刚刚复制的公钥,Title 自定义填写,然后点击下方的 Add SSH key 按钮保存公钥:
2.2 Coding 配置
Coding 的配置与 GitHub 配置基本相似,查看并复制公钥内容:cat ~/.ssh/id_rsa_coding.pub
。
可以勾选永久有效,避免过期失效重复操作。当然这样操作会降低一定的安全性,根据自己的情况选择即可。
3.本地配置私钥
SSH 原理:在托管网站使用公钥,在本地使用私钥,通过公钥和私钥的认证,本地仓库就可以和远程仓库进行通信。
在 .ssh
目录下新建 config
文件 vim config
,将下面内容添加到该文件中:
1 | #github |
config
文件中各个字段的含义:
Host : 配置别名
HostName : git服务器地址
IdentityFile : 私钥文件位置
User : 用户名
AddKeysToAgent : 添加到 ss-agent 中
UseKeychain : 添加到钥匙串中
如果你配置的 Coding ,需要注意
HostName
要填写你的团队的地址,Coding 现在对于新用户都是注册为团队,并为每个团队单独创建了一个二级域名,比如我的账户二级域名:sjzcode.coding.net
。直接写coding.net
无法认证成功。
4.更新 Identities
私钥配置成功后还需要将之添加到 ssh-agent 中,下面是相关命令:
1 | 1.清除缓存 |
上面 config
中的 AddKeysToAgent
和 UseKeychain
这两个配置在 macOS 10.12.2
以后的系统生效,会将私钥添加到 Mac 的钥匙串中。ssh-agent
是一个用于存储私钥的临时性的 session
服务,也就是说当你重启之后,ssh-agent
服务也就重置了。
5.Automator 自动设置
打开 Automator(自动操作),选择 实用工具
–> 运行 Shell 脚本
,然后在弹出框中填入秘钥配置命令:
1 | ssh-add ~/.ssh/id_rsa_github |
然后将脚本添加到启动项中,每次系统重启后会执行这个 Automator task,自动 ssh-add 所有的私钥
6.验证
命令 ssh -T git@别名
验证是否配置成功。
1 | ~/.ssh ssh -T git@github.com |
6.账号快速切换
如果在各个托管平台使用的用户名和邮箱都相同,请忽略此步骤。
这一步的原理就是通过自定义命令别名来实现快速切换用户。
在 .bash_profile
中增加下面内容:
1 | #git change |
切记执行 source ~/.bash_profile
以使修改生效。
参考资料
Tips
欢迎收藏和转发,感谢你的支持!(๑•̀ㅂ•́)و✧
欢迎关注我:后端小哥,专注后端开发,希望和你一起进步!