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

本文详细介绍了如何在Mac上配置两个Git账号,分别用于公司和私人项目,包括生成sshkey、配置config文件、启动ssh-agent环境等步骤。

起因

在公司需要使用公司邮箱提交代码,下班后想学新东西需要提交代码到个人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 整体步骤图

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

### 配置 Git 以关联 GitHub 账号 #### 配置本地 Git 用户信息 在开始使用 Git 前,需要配置全局的用户名和邮箱,这些信息将用于标识提交代码的作者。打开终端或命令行工具,输入以下命令: ```bash git config --global user.name "YourGitHubUsername" git config --global user.email "your-email@example.com" ``` 确保使用的邮箱与 GitHub 账号绑定的邮箱一致,以便于在 GitHub 上正确显示提交记录[^1]。 #### 生成 SSH 密钥并添加到 GitHub 为了安全地与 GitHub 进行通信,建议使用 SSH 协议而不是 HTTPS。首先,检查是否已经存在 SSH 密钥: ```bash ls -al ~/.ssh ``` 如果不存在密钥文件(如 `id_rsa` 和 `id_rsa.pub`),则需要生成新的 SSH 密钥: ```bash ssh-keygen -t rsa -b 4096 -C "your-email@example.com" ``` 按照提示操作后,SSH 密钥将会保存在默认路径下。接下来,需要将公钥添加到 GitHub 账号中: 1. 打开终端或命令行工具,复制公钥内容: ```bash cat ~/.ssh/id_rsa.pub ``` 2. 登录 GitHub,点击右上角用户头像,选择 **Settings**。 3. 在左侧菜单中选择 **SSH and GPG keys**。 4. 点击 **New SSH key** 按钮,输入一个标题(Title),并将复制的公钥粘贴到 **Key** 文本框中。 5. 点击 **Add SSH key** 完成添加。 完成以上步骤后,可以通过以下命令SSH 连接是否成功: ```bash ssh -T git@github.com ``` 如果一切正常,会收到一条欢迎信息,确认已成功连接到 GitHub[^1]。 #### 使用 PyCharm 关联 Git PyCharm 提供了对 Git 的良好支持,可以通过以下步骤将其与 Git 集成: 1. 确保本地已安装 Git,并且可以通过命令 `which git` 查找其路径。 2. 打开 PyCharm,进入 **Version Control** 设置页面,指定 Git 的安装路径。 3. 试连接,确保 PyCharm 能够识别 Git。 4. 添加 GitHub 账号并授权,使 PyCharm 可以访问你的 GitHub 仓库。 对于已经存在的项目,可以直接通过 PyCharm 的版本控制功能进行克隆、提交和推送等操作[^2]。 #### 使用 Eclipse 关联 Git Eclipse 同样支持 Git 插件,可以方便地管理项目的版本控制: 1. 安装 EGit 插件,这是 Eclipse 对 Git 的官方支持插件。 2. 创建或导入项目后,右键点击项目,选择 **Team > Share Project**。 3. 选择 Git 作为版本控制系统,创建一个新的仓库或使用现有的仓库。 4. 提交更改时,右键点击项目,选择 **Team > Commit**,填写提交信息并提交更改。 5. 将本地更改推送到远程仓库时,右键点击项目,选择 **Team > Remote > Push**,输入仓库地址、用户名和密码,完成推送操作[^3]。 #### Mac配置多个 GitHub 账号 如果你有多个 GitHub 账号,可以在同一台机器上为每个账号配置不同的 SSH 密钥: 1. 为每个账号生成独立的 SSH 密钥,例如 `id_rsa_accountA` 和 `id_rsa_accountB`。 2. 修改 `.ssh/config` 文件,添加如下内容来区分不同账号: ```plaintext # Account A Host github.com-accountA HostName github.com User git IdentityFile ~/.ssh/id_rsa_accountA # Account B Host github.com-accountB HostName github.com User git IdentityFile ~/.ssh/id_rsa_accountB ``` 3. 当克隆或推送仓库时,使用特定的主机名代替标准的 `github.com`,例如: ```bash git clone git@github.com-accountA:accountA/repo_name.git ``` 通过这种方式,可以轻松地在多个 GitHub 账号之间切换,而无需频繁修改 SSH 密钥配置[^4]。 #### Windows 中使用 Git 工具连接 GitHub 对于 Windows 用户,除了命令行工具外,还可以使用图形界面工具如 TortoiseGit 来简化 Git 的使用: 1. 下载并安装最新版本的 TortoiseGit,注意选择与系统架构匹配的版本(32位或64位)。 2. 安装过程中,可以选择集成 Git Bash 工具,这将提供一个类似于 Linux 的命令行环境。 3. 安装完成后,可以通过资源管理器的上下文菜单(右键点击)来执行 Git 操作,如提交、推送、拉取等。 TortoiseGit 不仅提供了丰富的 Git 功能,还具有直观的操作界面,非常适合初学者使用[^5]。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值