由于公司的一些原因,需要弄两个git的ssh的key,当然很多人也想一个弄公司的gitlab,一个弄github用。都是一个需求。虽然在生成的时候,发现他会提示你输入文件名,但是我直接输入了新的一个一样不好用。后来才知道需要再配置一下。
注:本文以没有设置全局用户名和邮箱为前提,如果设置了的话,可以通过如下命令去除,在对应的仓库里设置即可。
1 2 |
git config --global --unset user.name git config --global --unset user.email |
生成ssh key
首先我们需要生成公私钥文件。在~/.ssh目录下执行。(C:/User/xxx/.ssh)
1 |
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
就好了。第一种不生效试试第二种也是一样的。
接下来就需要添加密钥了。
1 2 |
ssh-add ~/.ssh/a ssh-add ~/.ssh/b |
到此就完事了。
配置config文件
创建个config文件在~/.ssh下面。直接在这个文件夹下创建出这个文件,然后填充如下内容。
1 2 3 4 5 6 7 8 9 10 11 12 13 |
# a Host gitlaba.com HostName gitlaba.com PreferredAuthentications publickey IdentityFile ~/.ssh/a User yourname # b Host gitlab.b.com HostName gitlab.b.com PreferredAuthentications publickey IdentityFile ~/.ssh/b User yourname |
保存。这时候就完事了~
解释一下,Host就是gitlab的地址,HostName用一样的就好。IdentityFile这里要填写对应的私钥文件(不加.pub),User其实是可以随便填。
验证一下
输入如下命令可以验证。
1 |
ssh -T git@a.com |
如果提示你Welcome to gitlab xxx!的话,就是对的,github也会有另一个提示。如果提示没有权限那就还是有问题。可以通过下面命令打开调试模式看,这里就不说了,一般都是配置文件有问题。
1 |
ssh -vT git@a.com |
©原创文章,转载请注明来源: 赵伊凡's Blog
©本文链接地址: git配置管理生成多个ssh的key