问题出现:首先是我在本地建了个项目,写完了之后呢打算用sourceTree推到gitlab的仓库里,奈何这gitlab仓库怎么也连接不上。基于我是第一次使用sourceTree,想着是不是啥东西没配置好,结果各种捣鼓发现gitee和github都能连上仓库,克隆推送都没出现问题,就是gitlab怎么搞都不行。
接下来看看都是报了些啥错,还有咋一步步解决的吧~
报错一:无效源路径
问题:在确保克隆的路径确实没出错的前提下,提示克隆的仓库是个无效的源路径
报错二:提示SSH密钥认证失败
报错三:用命令行试着克隆,提示输入密码
此处忘了截图,过程大概就是我试着不用sourcetree克隆,而是直接用命令行克隆仓库,结果就是输入克隆地址后,就一直提示输入密码,但是我的密码是死活都输不进去(没错就像是按键失效了一样,啥都输不进去)
后来查了资料,大概意思就是如果出现输入密码的情况,一般就是ssh没有配置好的问题
报错四:提示缺少known_hosts文件
这个提示就是生成公钥密钥的.ssh文件离缺少一个known_hosts文件,它是干什么用的呢?
查阅所得:ssh会把你每个访问过计算机的公钥(public key)都记录在~/.ssh/known_hosts。当下次访问相同计算机时,OpenSSH会核对公钥。如果公钥不同,OpenSSH会发出警告, 避免你受到DNS Hijack之类的攻击。
这个报错提示的解决方法比较简单,就是直接在后面输入
yes
(记得别直接回车啊大家伙😭),然后文件里就会自动生成known_hosts文件。
接着解决上述的报错问题
一.检查公钥密钥的配置是否正确
检查本地是否已经配置了公钥密钥,文件路径如下
如果检查没有该文件,那么配置公钥密钥方法(配置过的可以把文件夹里的东西删了,按下面步骤重新配置一次)
- 桌面右击–>git bash here
- 如下命令
ssh-keygen -t rsa -C “邮箱@***.com”
(邮箱自行输入)–>回车- 接着会出现三个问题(提示输入密码啥的空着它),直接按三次回车
- 最后成功生成密钥对
有了公钥密钥后就要将公钥配置到sourceTree和gitlab上(gitee和github配置同理)
查看公钥的方法
- 根据上图的路径打开id_ras.pub文件(整个文件全部拷贝)
- 在git bash hrer里输入
cat ~/.ssh/id_rsa.pub
(从ssh开始全部拷贝)
sourcetree配置ssh
工具–选项
gitlab配置ssh
登陆gitlab–头像–setting
配置完公钥之后就可以回去看看报错解决了没有
后来配置完ssh后又报了端口的错题,提示gitlab连接被拒绝的错误
Permission denied (publickey).
在查阅了不下几十后发现了一篇博客里提到代理节点被占用的问题
搞了几个钟实在是累了,想着就死马当活马医试试好了
- 首先查看代理是不是被占用了
git config --global http.proxy
- 这里显示代理确实是被占用了
- 接着取消代理
git config --global --unset http.proxy
然后重新试着克隆仓库,然后就克隆成功了。。。。
总结:最后解决的就跟做梦一样,前前后后搞了两三天,光是配置ssh就试了不下五遍,sourceTree卸载了又重下就怕哪一步出错导致后面的问题。然后回想起来我不管是用sourceTree或者是命令行做克隆都没有走代理克隆的方法,最后查了一下发现我在git的全局配置里设置了默认代理(害…学渣渣还是继续学习去了)
随便一提:sourceTree里也可以自定义代理