前言
现在比较流行使用git来进行代码的管理,公司内部一般使用gitlab来搭建Git服务器(中央服务器),而我们需要在自己的电脑上安装git(本地git服务器),并安装一个TortoiseGit客户端。我们可以使用SSH或者HTTPS(HTTP)两种协议来操作中央服务器上的repository。
问题
1:当通过SSH协议方式操作中央服务器上的repository时,出现以下问题;问题的大概意思是:没有可用的支撑验证方法(服务器发送公钥)
2:我们都知道如果要使用SSH协议来操作github或者gitlab上的repository时,需要在本地电脑上使用git命令生成一对公钥和私钥,然后把公钥配置到github或者gitlab里,私钥在本地电脑上存放(不会设置可以查看《设置github使用的SSH key》);这样一来用SSH协议操作中央服务器上的repository时,就不用再输入账号和密码来进行验证,而是git自动使用公钥和私钥进行对比,从而验证身份(重点:git使用本地的私钥和中央服务器上的公钥进行对比)。我们打开TortoiseGit上的Settings,查看Settings里的Network,会发现如下图:ssh client使用的是TortoiseGit的命令行工具,而不是git的命令行工具,所以这个TortoiseGitPlink.exe找不到私钥在哪里,并不会发送给中央服务器和公钥做对比。(直接用git的bash命令行来操作repository就没有这个问题的存在)
3:修改TortoiseGit的Settings里的NetWork如下图,换成使用Git自己的ssh命令行工具
4:再次操作中央服务器上的repository,成功