如何在mac中配置多个github帐号?亲测有效

起因

在公司需要使用公司邮箱提交代码,下班后想学新东西需要提交代码到个人github上,这就有了在同一台mac本上配置两个Git帐号的需求。

And then? We need to commit the related code by enterprise Email and meanwhile wanna operate some codes via personal Github in nonworking time. The requirement appears concerning configuration of Git (ssh key) in a PC.

当前处境

公司使用的是Mac本,公司工作帐号能正常使用,最近想添加一个个人帐号用于学习,看过几篇blog,写的都比较简单最后都没成功,最后自己摸索着配置好了,之后总结了本文给有同样需求的同学提供一点借鉴,亲测有效呦,哈哈哈。

步骤

原理是:要配置两套ssh key以及config配置文件
整体上分为以下几个步骤:

  • (1)打开.ssh文件夹,查看当前ssh key配置状态
  • (2)为个人帐号或者公司帐号生成ssh key
  • (3)添加config配置文件
  • (4)启动ssh-agent环境并添加生成的ssh keys
  • (5)测试配置
  • (6)项目测试Clone或者提交自己项目

(1) 查看当前ssh key配置状态。因为.ssh文件夹是隐藏文件,可以使用命令行打开默认路径的.ssh文件夹,查看ssh key配置状态,打开终端输入

open ~/.ssh

回车,会打开默认路径下的.ssh文件夹,如图1-1所示。如果以前配置过ssh的话,会看到id_rsa和id_rsa.pub两个文件,其中.pub是public的缩写也就是公钥,里面的内容要复制一份到github中。

图1-1 .ssh 文件夹

ps:.ssh文件夹是隐藏文件,默认路径是/users/yezhu/.ssh,除了通过以上方式打开,也可以通过以下命令进入:

$ cd /users/yezhu #切转到yezhu目录下
$ ls -all         #ls是显示此目录下的文件 ls -all 是显示隐藏文件在内的所有文件
$ cd .ssh         #切到ssh文件中 

(2) 生成ssh key。使用个人帐号(邮箱)通过命令ssh-keygen -t rsa -C “personal-Email”“生成ssh key。
往常的操作哐哐哐就是干,连续3次回车,简单暴力,可知道为啥不?容我来解释一下,第一次回车对应的内容是 Enter file in which to save the key (/Users/yezhu/.ssh/id_rsa): id_rsa_personal 需要填写文件名,如果不写的话就是默认名称为id_rsa,会把之前的生成已经存在的覆盖掉,所以我这里写的是id_rsa_personal;第二次和第三次都是声明是否需要为文件设置密码,默认即为不设置,所以这里连续2次回车。
此时在文件.ssh 文件夹中会多了id_rsa_personal和id_rsa_personal.pub文件,如图1-2所示。
这里写图片描述

图1-2 .ssh 文件夹


(3) 配置config文件。在terminal中.ssh路径下创建config文件,输入命令:

vi config

在弹出的config文件编辑窗口中填写:

#配置公司工作邮箱(bjwlxie@cn.***.com) 
Host github.com 
HostName github.com 
User git 
IdentityFile ~/.ssh/id_rsa_work    #路径一定要对,指向.ssh 文件夹中的id_rsa_work

#配置个人帐号邮箱(tom1xie@163.com) 
Host tomxie 
HostName github.com 
User git 
IdentityFile ~/.ssh/id_rsa_personal  #路径一定要对,指向.ssh 文件夹中的id_rsa_personal

其中Host\HostName\User 选择默认的即可,IdentityFile 指向对应的秘钥文件,这里需要把id_rsa_personal改成你自己的秘钥文件。在命令行末行模式下输入:wq保存此config文件并退出到shell下。在terminal中.ssh路径下输入vim config 可查看config文件内容。

ps补充一点编辑文件内容时常用的命令:

编辑文件内容时在末行模式下,输入命令 :wq vi将先保存文件,然后退出vi返回到shell。在末行模式下,输入命令:q! vi放弃所作修改而直接退到shell下。


(4) 启动ssh-agent环境并添加生成的ssh keys。
1⃣️启动ssh-agent环境,在terminnal中输入命令:

eval "$(ssh-agent -s)"   # start the ssh-agent in the background

出现 Agent pid * 意味着开启成功。

2⃣️逐个添加生成的ssh keys 到ssh-agent中,在terminnal中输入命令:

ssh-add -K ~/.ssh/id_rsa_work

结果:Identity added:…

ssh-add -K ~/.ssh/id_rsa_personal

结果:Identity added:…

3⃣️补充知识:
ssh-agent 会开启一个进程运行在后台,相当于一个服务。其机制是每隔几十秒向用 SSH 连接的服务器发送数据,由此服务器就不会自动断开跟你的 SSH 连接了。“还在吗 ~ ”。 也因此有时候电脑重启之后需要重新启动ssh-agent令之运行在后台,Windows用户经常要手动启动。


(5) 测试配置
在terminal中输入以下命令,检查之前配置是否正确:
1⃣️测试个人帐号配置:

$ ssh -T git@github.com

结果是: Hi username! You’ve successfully authenticated, but GitHub does not provide shell access.

2⃣️测试公司帐号配置:

$ ssh -T git@github.***.com  #公司企业github

结果是:Hi username! You’ve successfully authenticated, but GitHub does not provide shell access.

说明之前的配置是正确的。


(6) 应用 Clone个人github项目上测试

yezhudembp:~ yezhu$ git clone git@github.com:Tom1Xie/Learn_ShopMall.git
Cloning into 'Learn_ShopMall'...
remote: Counting objects: 3, done.
remote: Total 3 (delta 0), reused 0 (delta 0), pack-reused 0
Receiving objects: 100% (3/3), done.

说明是配置成功的。


整体上步骤如图1-3 所示:
这里写图片描述

图1-3 整体步骤图

大家有问题或疑问可以留言或者私信我,还请多多指教。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值