由于公司的一些原因,需要弄两个git的ssh的key,当然很多人也想一个弄公司的gitlab,一个弄github用。都是一个需求。虽然在生成的时候,发现他会提示你输入文件名,但是我直接输入了新的一个一样不好用。后来才知道需要再配置一下。
  注:本文以没有设置全局用户名和邮箱为前提,如果设置了的话,可以通过如下命令去除,在对应的仓库里设置即可。
  gitconfig --global --unsetuser.name
  gitconfig --global --unsetuser.email
  生成ssh key
  首先我们需要生成公私钥文件。在~/.ssh目录下执行。(C:/User/xxx/.ssh)
  ssh-keygen -t rsa -C "yourmail@gmail.com"
  正常情况一路回车到后,但是如果要生成两个的话,第二次会把第一次的覆盖。所以在提示“Enter file in witch to save the key”的时候,输入你要生成key的名字好了。比如两次命令生成的两个文件分别是a和b。
  这样在~/.ssh文件夹下,会新生成四个文件,分别是a、a.pub、b、b.pub。怎么用应该知道吧,是把.pub文件的内容复制到对应的服务的地方好了。
  正常一个的时候,我们到这里结束了。但是要用两个的时候,还得干点别的事情。
  添加私钥
  首先需要打开ssh-agent,如果是官方git客户端的话,可以直接输入ssh-agent -s,如果是msysgit这种的客户端的话,输入eval ssh-agent -s 好了。第一种不生效试试第二种也是一样的。
  接下来需要添加密钥了。
  ssh-add ~/.ssh/a
  ssh-add ~/.ssh/b
  到此完事了。
  配置config文件
  创建个config文件在~/.ssh下面。直接在这个文件夹下创建出这个文件,然后填充如下内容。
# a
Hostgitlaba.com
HostNamegitlaba.com
PreferredAuthenticationspublickey
IdentityFile ~/.ssh/a
Useryourname
# b
Hostgitlab.b.com
HostNamegitlab.b.com
PreferredAuthenticationspublickey
IdentityFile ~/.ssh/b
Useryourname
  保存。这时候完事了~
  解释一下,Host是gitlab的地址,HostName用一样的好。IdentityFile这里要填写对应的私钥文件(不加.pub),User其实是可以随便填。
  验证一下
  输入如下命令可以验证。
  ssh -T git@a.com
  如果提示你Welcome to gitlab xxx!的话,是对的,github也会有另一个提示。如果提示没有权限那还是有问题。可以通过下面命令打开调试模式看,这里不说了,一般都是配置文件有问题。
  ssh -vTgit@a.com