工作原理简述
- github将ssh的公钥作为本地仓库和远程仓库连接的唯一标识,如果你将一个相同的公钥上传到不同的github账户,github则无法做出辨识,故在重复添加相同公钥的时候github会进行相应的提示。
- 然而一台电脑,可以生成多对公私钥,我们可以通过配置,将不同的公钥上传到不同的github账号,那么就不存在单个公钥绑定多个github账号的情况存在了。
- ok,下面进行具体的配置细节。
配置过程
* 以下命令默认在命令行下操作(win系统可在git bash下操作) *
```
ls ~/.ssh
```
(默认读者懂一点ssh配置的知识)
若已有一对秘钥的话,那只需要再生成一对秘钥即可,将新的秘钥换个名字,则不会产生覆盖之前秘钥的问题
生成新的秘钥
ssh-keygen
会提示输入文件名
Generating public/private rsa key pair. Enter file in which to save the key (/×××/×××/.ssh/id_rsa):
在冒号后输入新的秘钥名,并且是绝对路径的方式。比如:
/×××/×××/.ssh/id_rsa_×××
之后便可以一直回车到底了。
在.ssh文件夹下新建config文件并进行映射配置
# 在.ssh目录下进行操作 touch config # 生成config文件
对config文件进行编辑
# default Host github.com HostName github.com User git IdentityFile ~/.ssh/id_rsa # another Host ×××.github.com # 对Host添加任意前缀 HostName github.com User git IdentityFile ~/.ssh/id_rsa_××× # 公钥为新生成的公钥
将新生成的公钥写到需要绑定的github账号上
这步和第单个公钥绑定github的方式一样,github会有操作提示。
测试ssh链接
ssh -T git@github.com ssh -T git@×××.github.com # Hi ×××! You've successfully authenticated, but GitHub does not provide shell access. # 若提示如上,则表明测试ssh链接没有问题
将仓库clone到本地
这步示例略过
本地配置仓库
# 取消git全局配置 git config -l # 查看全局git配置信息 git config --global --unset user.name # 取消全局用户名 git config --global --unset user.email # 取消全局邮箱 # 进入相应git仓库(每个仓库都需要配置) git config user.name "×××" # 配置局部用户名 git config user.email "×××@××.com" # 配置局部邮箱
重建origin远程分支
git remote -v # 查看远程分支 git remote rm origin # 删除远程分支 git remote add origin git@×××.github.com:repo_name #重建远程分支,repo_name为仓库名,可在github上查看
push一下看看
git push origin master # 没有问题则说明配置完成