前言
- 在我们使用 Git 中,有时候会遇到多账号多仓库的情况,比如公司的 GitLab 和 GitHub,以及自己的 GitHub,这时候我们就需要配置多个 SSH 密钥来区分不同的账号和仓库
生成 SSH 密钥
ssh-keygen -t rsa -C "你的仓库注册邮箱"
# 例如:ssh-keygen -t rsa -C "biaov@qq.com"
- 输入你的文件名,如果你不知道,那就建议设置成你的邮箱前缀,这样方便你管理,例如:biaov
- 回车继续设置密码,如果你不想设置密码,那就直接回车,这样就不会设置密码了
- 建议这里不要设置密码,直接回车,这样以后你也不用再输入密码了
- 再次输入密码同理,回车
- 生成成功后,会在你的用户目录下生成一个 .ssh 文件夹,里面有两个文件,一个是私钥,一个是公钥,我们只需要公钥就可以了,私钥不要泄露给别人,否则别人就可以访问你的仓库了
biaov
: 私钥biaov.pub
: 公钥
仓库配置 SSH 密钥
- 登录你的仓库,找到 SSH 密钥配置,将公钥复制进去,保存即可
- 这里以 GitHub 为例,其他仓库也是类似的
- 复制
biaov.pub
文件的内容,粘贴到 GitHub 的 SSH 密钥配置中,然后保存即可
本地配置 .ssh 文件
- 因为它需要根据你的配置来识别你的私钥,所以我们需要在本地配置一下,这样就可以识别你的私钥了
- 在你的 .ssh 文件夹下,新建一个
config
文件,然后输入以下内容:.ssh
:C:\Users\Administrator\.ssh
- windowsHost
: 你的仓库域名,例如:github.com, 如果是相同域名不同账号,则拼接-
区分,例如:github.com-biaov2017User
: 你的仓库用户名,例如:biaovHostName
: 你的仓库域名,例如:github.comIdentityFile
: 你的私钥路径,例如:C:/Users/Administrator/.ssh/biaovPreferredAuthentications
: 你的认证方式,例如:publickey
Host github.com
User biaov
HostName github.com
IdentityFile ~/.ssh/biaov
PreferredAuthentications publickey
Host github.com-biaov2017
User biaov2017
HostName github.com
IdentityFile ~/.ssh/biaov2017
PreferredAuthentications publickey
Host gitee.com
User biaov
HostName gitee.com
IdentityFile ~/.ssh/biaov
PreferredAuthentications publickey
克隆代码
- 仓库地址设置对应的域名
git clone git@github.com:biaov2017/demo.git
# 或者
git clone git@github.com-biaov2017:biaov2017/demo.git
- 如果你已经克隆了代码,那么你需要修改一下 git 配置
- 打开 git 配置文件:
项目目录/.git/config
[remote "origin"]
url = git@github.com:biaov2017/demo.git
# 替换为
[remote "origin"]
url = git@github.com-biaov2017:biaov2017/demo.git
这样你就可以多账号多仓库使用 Git 了