问题出现:首先是我在本地建了个项目,写完了之后呢打算用sourceTree推到gitlab的仓库里,奈何这gitlab仓库怎么也连接不上。基于我是第一次使用sourceTree,想着是不是啥东西没配置好,结果各种捣鼓发现gitee和github都能连上仓库,克隆推送都没出现问题,就是gitlab怎么搞都不行。

接下来看看都是报了些啥错,还有咋一步步解决的吧~

报错一:无效源路径

进不了gitlab页面 gitlab连不上_命令行


问题:在确保克隆的路径确实没出错的前提下,提示克隆的仓库是个无效的源路径

报错二:提示SSH密钥认证失败

进不了gitlab页面 gitlab连不上_github_02

报错三:用命令行试着克隆,提示输入密码

此处忘了截图,过程大概就是我试着不用sourcetree克隆,而是直接用命令行克隆仓库,结果就是输入克隆地址后,就一直提示输入密码,但是我的密码是死活都输不进去(没错就像是按键失效了一样,啥都输不进去)

后来查了资料,大概意思就是如果出现输入密码的情况,一般就是ssh没有配置好的问题

报错四:提示缺少known_hosts文件

进不了gitlab页面 gitlab连不上_命令行_03

这个提示就是生成公钥密钥的.ssh文件离缺少一个known_hosts文件,它是干什么用的呢?

查阅所得:ssh会把你每个访问过计算机的公钥(public key)都记录在~/.ssh/known_hosts。当下次访问相同计算机时,OpenSSH会核对公钥。如果公钥不同,OpenSSH会发出警告, 避免你受到DNS Hijack之类的攻击。

这个报错提示的解决方法比较简单,就是直接在后面输入yes(记得别直接回车啊大家伙😭),然后文件里就会自动生成known_hosts文件。

接着解决上述的报错问题

一.检查公钥密钥的配置是否正确

检查本地是否已经配置了公钥密钥,文件路径如下

进不了gitlab页面 gitlab连不上_命令行_04

如果检查没有该文件,那么配置公钥密钥方法(配置过的可以把文件夹里的东西删了,按下面步骤重新配置一次)

  1. 桌面右击–>git bash here
  2. 如下命令 ssh-keygen -t rsa -C “邮箱@***.com”(邮箱自行输入)–>回车
  3. 接着会出现三个问题(提示输入密码啥的空着它),直接按三次回车
  4. 最后成功生成密钥对

有了公钥密钥后就要将公钥配置到sourceTree和gitlab上(gitee和github配置同理)

查看公钥的方法

  1. 根据上图的路径打开id_ras.pub文件(整个文件全部拷贝)
  2. 在git bash hrer里输入cat ~/.ssh/id_rsa.pub(从ssh开始全部拷贝)

sourcetree配置ssh

工具–选项

进不了gitlab页面 gitlab连不上_git_05


进不了gitlab页面 gitlab连不上_命令行_06

gitlab配置ssh

登陆gitlab–头像–setting

进不了gitlab页面 gitlab连不上_git_07


进不了gitlab页面 gitlab连不上_git_08


配置完公钥之后就可以回去看看报错解决了没有

后来配置完ssh后又报了端口的错题,提示gitlab连接被拒绝的错误

Permission denied (publickey).

在查阅了不下几十后发现了一篇博客里提到代理节点被占用的问题
搞了几个钟实在是累了,想着就死马当活马医试试好了

  1. 首先查看代理是不是被占用了 git config --global http.proxy
  2. 进不了gitlab页面 gitlab连不上_git_09

  3. 这里显示代理确实是被占用了
  4. 接着取消代理git config --global --unset http.proxy

然后重新试着克隆仓库,然后就克隆成功了。。。。

总结:最后解决的就跟做梦一样,前前后后搞了两三天,光是配置ssh就试了不下五遍,sourceTree卸载了又重下就怕哪一步出错导致后面的问题。然后回想起来我不管是用sourceTree或者是命令行做克隆都没有走代理克隆的方法,最后查了一下发现我在git的全局配置里设置了默认代理(害…学渣渣还是继续学习去了)

进不了gitlab页面 gitlab连不上_github_10


随便一提:sourceTree里也可以自定义代理

进不了gitlab页面 gitlab连不上_命令行_11