gitlab远程子仓库配置SSH - 保姆级教程

        背景:在该gitlab main path下原本是链接了一个http的子仓库SDK,但是由于要使用持续集成工具Jenkins检查merge的代码是否编译通过、是否单元测试通过等,因此需要将子仓库SDK的链接引用改为SSH的。改链接引用很容易,将git main path下的.gitmodules文件里的url改为SSH的就好。

        但是遇到了一个问题:重新在本地Git Clone main path,右键点击Submodules update,提示要输入gitlab的密码,输入密码后还是弹出输入密码的框。在网上搜索了一些方法,但是不够详细,走了好多弯路,所以记录下配置SSH的详细过程吧。

配置SSH 

1. win+r输入cmd打开cmd运行窗口输入,git config --global user.name "你的gitlab用户名",回车,输入git config --global user.email "你的gitlab邮箱",回车;                 

gitlab用户名和gitlab邮箱可以在这里看到

gitlab远程子仓库配置SSH - 保姆级教程_第1张图片

2. 输入git config --global --list,回车,这一步知识看下前面的步骤有没有成功;

3. 输入ssh-keygen,连续3次回车,成功之后id_rsa,id_rsa.pub两个文件默认在C:\Users\username/.ssh目录下,cmd运行窗口也显示了文件路径。

gitlab远程子仓库配置SSH - 保姆级教程_第2张图片

ps:如果输入命令ssh-keygen回车显示“ssh-keygen 不是内部或外部命令,也不是可运行的程序xxx”,那么在本地main code文件夹下右键选择Git Bash Here,输入ssh-keygen就可以了,盲猜可能是之前环境变量没配好。

4. 打开id_rsa.pub,复制ssh key

法一:直接用UltraEdit打开id_rsa.pub,复制所有内容;

法二:在本地main code文件夹下右键选择Git Bash Here,输入cat ~/.ssh/id_rsa.pub,回车,

复制以ssh-rsa开头的这段ssh key; 

gitlab远程子仓库配置SSH - 保姆级教程_第3张图片

5. 将ssh key填写到gitlab ​​​SSH Keys上。

gitlab远程子仓库配置SSH - 保姆级教程_第4张图片

 6. 生成.ppk;打开PuTTYgen -> 点击load,选择.ssh/id_rsa -> 点击Save private key,保存ppk文件到.ssh目录下;

gitlab远程子仓库配置SSH - 保姆级教程_第5张图片

gitlab远程子仓库配置SSH - 保姆级教程_第6张图片

7. 本地新建文件夹load ssh path,输入gitlab的个人密码,成功clone sdk到本地;

gitlab远程子仓库配置SSH - 保姆级教程_第7张图片

8. clone main path到本地

(1)clone main path(http);

(2)将生成的.ppk加到Git putty key;

gitlab远程子仓库配置SSH - 保姆级教程_第8张图片

(3)在本地main仓库下右键pull;

(4)右键submodules update将sdk子仓库(ssh)拉取到本地。

正常情况下是能成功克隆到本地的。

异常情况

但是我的笔记本电脑出现了以下问题:

1、TortoiseGitPlink.exe:No such file or directory,fatal:unable to folk.

解决方法:搜索TortoiseGit -> 打开文件位置 -> 打开文件所在位置 -> 复制粘贴文件夹

gitlab远程子仓库配置SSH - 保姆级教程_第9张图片

gitlab远程子仓库配置SSH - 保姆级教程_第10张图片

2、在Git Bash窗口输入git submodul update,出现下图所示的弹框,弹框上提示这个host不能被建立,ED25519 Key是xxx,该问题在问题1解决后也解决了;

gitlab远程子仓库配置SSH - 保姆级教程_第11张图片

3、clone代码报错:error: cannot spawn C:\ProgramData\Microsoft\Windows\Start Menu\Programs\TortoiseGit: Permission denied

gitlab远程子仓库配置SSH - 保姆级教程_第12张图片

原因:之前安装过TortoiseGit,但是残留文件没有清除

解决方法:打开C:\ProgramData\Microsoft\Windows\Start Menu\Programs\TortoiseGit,找到其快捷键,打开文件所在位置,复制其路径,粘贴到下图所示的位置应用即可。

gitlab远程子仓库配置SSH - 保姆级教程_第13张图片

其他问题

Q1. 台式电脑有konwn_hosts,而笔记本没有

A1: known_hosts 是通过ssh去生成的,当你通过ssh去连接到远程的服务器的时候就会生成它。

Q2:生成的xx.ppk是什么?

A1:ppk是由公钥id_rsa.pub和私钥id_rsa生成的程序;

你可能感兴趣的:(Gitlab,gitlab)