说明:git配置网上资源已经很丰富,本人只是整理测试,再次分享记录,以便后来者查阅。
使用场景
工作中或者自主学习时候,会使用到同一台计算机多个git账号,比如github,gitlab,gitee
情景一:
gitlab,gitee,github使用的是同一个邮箱账号注册情况
只需要使用ssh-key 工具生成一次公私秘钥,然后将公钥id_rsa.pub 设置在各个git网站的ssh公钥上,即可
情景二:
gitlab,gitee,github使用不同邮箱账号注册情况
准备工作:
首先,需要准备好对Git的全局用户进行配置。在初次安装Git时,往往会使用如下的命令配置全局用户名和邮箱:
git config --global user.name "xxx" // 配置全局用户名,如Github上注册的用户名
git config --global user.email "yyy@mail.com" // 配置全局邮箱,如Github上配置的邮箱
这个--global选项,是指这里配置的user.name和user.email是相对于全局进行配置的,即不同的Git仓库默认的用户名和邮箱都是这个值。由于需要管理多个账户,所以仅仅使用这个全局值是不够的,需要在每个仓库中单独配置。对此,有两种处理方法:
如果之前已经使用该命令进行配置,则先使用如下命令清除
git config --global --unset user.name
git config --global --unset user.email
如果不确定是否已经配置过,可以使用下面的命令查看
git config --global user.name
git config --global user.email
1.切换.ssh目录
cd ~/.ssh
2.使用ssh-keygen生成公私钥
ssh-keygen -rsa -C 337462386@qq.com
Generating public/private rsa key pair.
Enter file in which to save the key (/Users/xxxx/.ssh/id_rsa): id_rsa_gitlab
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /Users/xxxx/.ssh/id_rsa_gitlab
Your public key has been saved in /Users/xxxx/.ssh/id_rsa_gitlab.pub
The key fingerprint is:
SHA256:4yNiKfqWOLUU1fSxG0PO49F+LQ9ofgNcq0QLEQhR6EI 337462386@.com
The key's randomart image is:
+---[RSA 2048]----+
| oBo.=. |
| E o o= = |
| . o @ o . |
| o . . @ + o |
| o S O = . |
| o . . = + + |
| +.o+ . o o o . |
|o.+o . . . . . |
|.+. |
+----[SHA256]-----+
注意:这里默认秘钥文件名称id_rsa,可以根据不同git自定义不同名称
3.将私钥配置到本地
SSH协议的原理,就是在托管网站上使用公钥,在本地使用私钥,这样本地仓库就可以和远程仓库进行通信。在上一步已经生成了秘钥文件,接下来需要使用秘钥文件,首先是在本地使用秘钥文件:
ssh-add ~/.ssh/id_rsa_github // 将GitHub私钥添加到本地
ssh-add ~/.ssh/id_rsa_gitlab // 将GitLab私钥添加到本地
为了检验本地是否添加成功,可以使用ssh-add -l命令进行查看
4. 配置多账号本地config
新建config文件:touch config
Host github // 网站的别名,随意取
HostName github.com // 托管网站的域名
User xxxx // 托管网站上的用户名
IdentityFile ~/.ssh/id_rsa_github // 使用的密钥文件
// GitLab的配置相同
Host gitlab
HostName gitlab.com
User xxxx
IdentityFile ~/.ssh/id_rsa_gitlab
config文件详解
每个账号单独配置一个Host,每个Host要取一个别名,每个Host主要配置HostName和IdentityFile两个属性即可
Host的名字可以取为自己喜欢的名字,不过这个会影响git相关命令,例如:
Host mygithub 这样定义的话,命令如下,即git@后面紧跟的名字改为mygithub
git clone git@mygithub:PopFisher/AndroidRotateAnim.git
HostName 这个是真实的域名地址
IdentityFile 这里是id_rsa的地址
PreferredAuthentications 配置登录时用什么权限认证--可设为publickey,password publickey,keyboard-interactive等
User 配置使用用户名
5.配置公钥到Git网站
以Gitlab为例子,先在本地复制公钥。进入.ssh目录,使用vim id_rsa_gitlab.pub查看生成的GitHub公钥,全选进行复制。
登录gitlab,点击右上角头像选择settings,在打开的页面中选择SSH keys
屏幕快照 2019-06-21 下午2.07.12.png
填写公钥key ,title 可以随意起
网友评论