实习开发中咱们可能一个机子上配置多个git帐号,如github.com,oschina.com 或者工做帐号,私人帐号,这时候就2个帐号用一个key,确定会冲突,有一个会提示没权限(帐号和密码对应不上)git
如:github
ssh key-gen -t rsa -C "comment" 密钥的类型 : -t = The type of the key to generate 识别密钥的注释:-C = comment to identify the key
密钥注释你能够输入任何内容shell
解决方案:配置两套keybash
使用git bash 进行操做 ssh
ssh-keygen -t rsa -C "xxxxx@qq.com"
在~/.ssh/目录下生成id_rsa.pub公钥添加到github的ssh秘钥处。ide
.ssh 目录在 C盘 用户/username/目录下学习
ssh -T github.com
ssh-keygen -t rsa -f ~/.ssh/id_rsa_work -C "yyyyy@qq.com"
使用 -f 参数,明生产文件的名称。不然会生成同名文件 id_rsa ,会覆盖以前生产的。测试
在~/.ssh/目录下生成id_rsa_work.pub公钥添加到github的ssh秘钥处。code
ssh -T git@139.198.189.75
这里的139.198.189.75是公司内部的gitLab的地址开发
由于默认只读取id_rsa,为了让SSH识别新的私钥,需将其添加的SSH agent中。
ssh-agent bash ssh-add ~/.ssh/id_rsa ## 能够经过ssh-add -l来确认结果 ssh-add ~/.ssh/id_rsa_work ## 能够经过ssh-add -l来确认结果
在.ssh目录下建立一个config文本文件,添加相关配置
主要有如下配置:
vi .ssh/config # 加上如下内容 # 配置 gitLab Host github.com HostName github.com IdentityFile ~/.ssh/id_rsa PreferredAuthentications publickey User Boy-A # 配置工做 Host 139.198.189.75:88 HostName 139.198.189.75:88 IdentityFile ~/.ssh/id_rsa_work PreferredAuthentications publickey User Boy-B
该文件的主要做用就是指明各个git账号对应的User以及IdentityFile的文件位置。当配置完毕后,在各个项目repo中应用本身的用户名以及邮箱
其中 上面的 IdentityFile 能够用绝对地址,如 /c/Users/shellay/.ssh/id_rsa ,在.ssh 目录下使用 pwd 获取
由于一台电脑上配置了多个git帐号,因此就不能再配置全局的用户名和邮箱了,而是在不一样的仓库下,若是须要链接不一样的git帐号,配置相应的局部用户名和邮箱便可,若是以前配置过全局的用户名和邮箱,须要取消global配置
git config --global --unset user.name git config --global --unset user.email
全局配置在 C:/用户/username/gitconfig 文件中
配置局部的用户名和邮箱
git config user.name "xxxx" git config user.email "xxxx@xx.com"
局部配置都在 当前项目中的 .git/config 文件中