需求:

  公司代码用的是GitLab做代码托管,所以我们代码提交和拉取也需要git;之前是用SVN做管理代码,所以直接下载安装了一个汉化版的TortoiseSVN,平时开发也是非常方便;现在用git管理,所以自然想到,是否也有类似的客户端工具提供使用,而不用去捣鼓哪些复杂的git命令;

  没想到,还真有TortoiseGit提供使用,于是安装了一个汉化版,开干;

 

问题:这个时候,问题来了,本地电脑与git有两种验证方式,一个是账户HTTPS,一个是使用SSH密钥,相对而言后者更为安全,而且还可以方便在家和公司同时安排。

  按我们之前的理解,于是直接在本地通过git指令生成密钥,放到gitlab上,放上去是没有问题,但是本地想通过SSH方式克隆代码,却一直提示“密钥验证不通过”。

 

为什么:于是查阅了资料,发现TortoiseGit小乌龟使用扩展名为ppk的密钥,而不是ssh-keygen生成的rsa密钥,简而言之,使用命令ssh-keygen -C "邮箱地址" -t rsa产生的密钥在TortoiseGit中不能用。如下图

gitlab搜索代码关键字_git

 

操作:于是按着教程,通过TortoiseGit小乌龟自带的工具puttygen生成RSA密钥,工具位置如下图。但是生成之后,你会发现,问题又来了,通过这个工具生成的密钥,复制到gitlab上,一直提示密钥格式有误。

gitlab搜索代码关键字_下载安装_02

 

 

解决:最终查询资料,和处理方式如下:

1、我们首先还是通过git指令生成本地密钥

#(如果之前没有配置的话)先配置git的全局变量user.name,user.email,这一步必须配置
git config --global user.name "username"
git config --global user.email "useremail@qq.com"

#生成密钥
ssh-keygen -t rsa -C  "useremail@qq.com"

#直接连续回车,不需要密码的话。

#这条命令将默认在C:\Users\user.ssh目录下创建id_rsa,id_rsa.pub,这就是我们需要的RSA私钥和公钥

2、通过如上操作后,我们就生成了私钥和公钥,我们还是按刚才操作的,将C:\Users\user.ssh\id_rsa.pub,全部信息复制下来,添加到gitlab和github中。

3、添加成功后,然后再打开,刚才说的那个TortoiseGit小乌龟自带的工具puttygen密钥工具,将我们的git生成的C:\Users\user.ssh\id_rsa私钥转换成 1.ppk结尾的私钥

gitlab搜索代码关键字_指令生成_03

 

 4、然后我们再克隆,加载密钥选择,我们刚才生成的 1.ppk密钥,即可成功克隆。

gitlab搜索代码关键字_指令生成_04

 

 最后:其实这里就可以看出,之前的密钥匙是没有问题的,只是说两者的格式问题导致,现在给他做了一个格式的切换而已。

 


-----END

影子是一个会撒谎的精灵,它在虚空中流浪和等待被发现之间;在存在与不存在之间....