如何通过SSH将TortoiseGit小乌龟关联GitLab
需求:
公司代码用的是GitLab做代码托管,所以我们代码提交和拉取也需要git;之前是用SVN做管理代码,所以直接下载安装了一个汉化版的TortoiseSVN,平时开发也是非常方便;现在用git管理,所以自然想到,是否也有类似的客户端工具提供使用,而不用去捣鼓哪些复杂的git命令;
没想到,还真有TortoiseGit提供使用,于是安装了一个汉化版,开干;
问题:这个时候,问题来了,本地电脑与git有两种验证方式,一个是账户HTTPS,一个是使用SSH密钥,相对而言后者更为安全,而且还可以方便在家和公司同时安排。
按我们之前的理解,于是直接在本地通过git指令生成密钥,放到gitlab上,放上去是没有问题,但是本地想通过SSH方式克隆代码,却一直提示“密钥验证不通过”。
为什么:于是查阅了资料,发现TortoiseGit小乌龟使用扩展名为ppk的密钥,而不是ssh-keygen生成的rsa密钥,简而言之,使用命令ssh-keygen -C "邮箱地址" -t rsa产生的密钥在TortoiseGit中不能用。如下图
操作:于是按着教程,通过TortoiseGit小乌龟自带的工具puttygen生成RSA密钥,工具位置如下图。但是生成之后,你会发现,问题又来了,通过这个工具生成的密钥,复制到gitlab上,一直提示密钥格式有误。
解决:最终查询资料,和处理方式如下:
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结尾的私钥
4、然后我们再克隆,加载密钥选择,我们刚才生成的 1.ppk密钥,即可成功克隆。
最后:其实这里就可以看出,之前的密钥匙是没有问题的,只是说两者的格式问题导致,现在给他做了一个格式的切换而已。
-----END
影子是一个会撒谎的精灵,它在虚空中流浪和等待被发现之间;在存在与不存在之间....