由于公司的一些原因,需要弄两个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
git配置管理生成多个ssh的key
发表于:2017-01-09
作者:网络转载
来源:
- 周排行
- 月排行
-   Spring配置代理事务管理配置
-   配置文件的构成和管理
-   配置管理建设的一点体会
-   软件配置管理之配置管理计划
-   软件配置管理中的SVN
-   本地多用户下git使用ssh管理配置
-   配置管理规范-互联网配置管理特点
-   iOS VPN开发的配置和管理
-   使用Vundle管理配置Vim基本插件
-   配置文件的构成和管理
-   Spring配置代理事务管理配置
-   Spring任务调度配置及使用
-   配置管理规范-互联网配置管理特点
-   软件配置对敏捷开发中迭代模式的支撑