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

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

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

起因

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

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

<think>好的,用户想了解如何在GitHub配置SSH密钥。我需要先回忆一下相关的步骤,并结合提供的引用资料来组织回答。首先,用户可能不太清楚SSH密钥的作用,所以需要简单解释一下,说明使用SSH密钥可以避免每次推送代码都要输入账号密码,更加安全方便。 接下来,按照常规步骤,配置SSH密钥大致分为生成密钥、添加密钥到GitHub、验证配置这几个部分。需要确保每一步都清晰,并且命令正确。根据引用资料,不同的引用可能提到不同的细节,比如引用3提到使用cmd或Git Bash生成密钥,而引用4则用了具体的命令参数,比如-t rsa -b 4096。需要综合这些信息,给出最佳实践。 生成密钥部分,用户需要打开终端或者Git Bash,输入ssh-keygen命令。这里要注意是否需要设置密码,引用3和4提到可以一直按回车使用默认选项,而引用2则提到设置密码的步骤。可能需要说明两种情况,但通常推荐不设置密码以便于自动化流程,但根据安全需求可以选择设置。 然后,找到生成的公钥文件,通常是id_rsa.pub,复制内容到GitHubSSH设置页面。这部分需要指导用户如何在GitHub上找到设置的位置,可能还需要提醒用户不要泄露私钥。 验证部分,使用ssh -T git@github.com命令来试是否成功。如果看到欢迎信息,说明配置成功。这里需要提醒用户可能会看到权限警告,正常确认即可。 最后,生成相关问题,可能需要涵盖常见的问题,比如如何检查现有密钥、多账户管理、权限错误处理、密钥更新等。这些问题都是用户在配置过程中可能遇到的后续问题,提前准备可以帮助他们进一步解决问题。 需要确保回答的结构清晰,分步骤说明,代码块正确,使用正确的LaTeX格式。同时,引用来源要正确标注,比如引用3提到生成密钥的命令,引用5提供了官方文档链接,可以作为补充资源。 可能还需要注意不同操作系统的路径差异,比如Windows用户和Mac/Linux用户的.ssh目录位置不同,但用户提供的引用中主要提到的是Windows路径,可能需要指出这一点,或者保持一般性说明。 最后,检查是否有遗漏的步骤,比如是否需要在生成密钥后启动ssh-agent,这在某些系统可能是必要的,但根据引用资料,似乎大部分情况不需要,所以可能可以省略,除非用户遇到问题。 总结下来,回答的结构应该是:简介SSH密钥的作用,分步骤生成、添加、验证,然后常见问题解答,最后相关问题。确保每个步骤都有对应的引用支持,并且命令正确无误。</think>### GitHub配置SSH密钥教程 通过SSH密钥可实现本地设备与GitHub仓库的安全连接,无需重复输入账号密码。以下是具体步骤: --- #### **1. 生成SSH密钥** 打开终端(Windows使用Git Bash或CMD,Mac/Linux使用Terminal),执行命令: ```bash ssh-keygen -t rsa -b 4096 -C "[email protected]" ``` - **参数说明**: - `-t rsa`:指定密钥类型为RSA - `-b 4096`:设置密钥长度为4096位(安全性更高)[^4] - `-C`:添加注释(通常用邮箱) - 按提示选择密钥保存路径(默认`~/.ssh/id_rsa`),可直接按回车跳过密码设置[^3] 生成后,在用户目录的`.ssh`文件夹中找到公钥文件`id_rsa.pub`,例如: ```bash cat ~/.ssh/id_rsa.pub # 查看并复制公钥内容 ``` --- #### **2. 添加公钥到GitHub** 1. 登录GitHub,进入 **Settings → SSH and GPG Keys → New SSH Key** 2. 标题(Title)可自定义(如“My Laptop”),将复制的公钥内容粘贴到“Key”文本框 3. 点击 **Add SSH Key** 完成添加[^1][^3] --- #### **3. 验证配置** 执行命令试连接: ```bash ssh -T git@github.com ``` 若显示 `Hi [用户名]! You've successfully authenticated...` 即表示成功[^1][^2] --- #### **常见问题** - **权限错误**:确保`.ssh`文件夹权限为700,密钥文件权限为600 - **多账户管理**:通过`~/.ssh/config`文件配置不同主机对应的密钥[^5] - **密钥更新**:若密钥泄露,需在GitHub删除旧密钥并重新生成 ---
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值