一、问题

在使用TortoiseGit与远程仓库进行同步代码的时候提示如下错误,即:没有支持认证的方法可用。而GitBash却可以正常使用,不受影响。
watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0plZmZ4dV9saWI=,size_16,color_FFFFFF,t_70
通过调查,发现应该是TortoiseGit远程仓库的公匙无法和本地的密匙进行匹配认证造成的(主要是TortoiseGit缺少本地密匙)。由于TortoiseGit的默认网络SSH clientTortoiseGitPlink.exe,如下图所示。因此主要有两种方式来解决该问题:

  1. 不修改TortoiseGit的默认网络SSH client,此时需要为TortoiseGit添加后缀为.ppk的本地密匙。
  2. 修改TortoiseGit的默认网络SSH client,使其与GitBashSSH相同,即与GitBash使用相同的密匙。
    watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0plZmZ4dV9saWI=,size_16,color_FFFFFF,t_70

二、解决方案

1、方案一:为TortoiseGit添加本地密匙

  • 由于TortoiseGit默认是通过TortoiseGitPlink.exe来进行公匙和密匙配对,因此它只能识别后缀为.ppk的密匙。
  • 该方式是通过Pageant来添加后缀为.ppk的密匙,因此首先打开Pageant,如下图
    watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0plZmZ4dV9saWI=,size_16,color_FFFFFF,t_70
  • 打开后将出现在右下角,点击查看已添加的Keys,如下图
    watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0plZmZ4dV9saWI=,size_16,color_FFFFFF,t_70
  • 打开可以看见密匙Keys列表里面为空,所以也就无法与服务器上的公匙进行匹配,自然也就会提示操作失败。如下图
    watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0plZmZ4dV9saWI=,size_16,color_FFFFFF,t_70
  • 点击Add Key来将本地生成的后缀名为.ppk的密匙添加进去,就可以了,如下图
    watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0plZmZ4dV9saWI=,size_16,color_FFFFFF,t_70

2、方案二:修改TortoiseGit的默认网络SSH client执行程序

  • 由于TortoiseGit出现错误,而GitBash可以正常使用,所以GitBashSSH是正常的。在此将TortoiseGitSSH client修改为GitBash对应的SSH程序。
  • 修改成GitBash对应的SSH程序后,TortoiseGit与服务器上的公匙进行匹配的时候,就会使用和GitBash同样的本地密匙id_rsa,而不再需要后缀名为.ppk的密匙了,也就无需再来借助其它工具(如PuTTYgen)来将id_rsa转换成对应后缀为.ppk的密匙了。
  • 具体方法为打开TortoiseGitSettings来进行设置,如下图:
    watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0plZmZ4dV9saWI=,size_16,color_FFFFFF,t_70
  • 选择Network对应的SSH client,如下图:
    watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0plZmZ4dV9saWI=,size_16,color_FFFFFF,t_70
  • 选择Git的安装目录下对应的ssh.exe文件即可,如下图所示:
    watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0plZmZ4dV9saWI=,size_16,color_FFFFFF,t_70

另:

采用GortoiseGit方式clone失败之后,一定要先尝试用Git bash命令行试下,如果Git bash命令行可以,那就用上面的方法切换ssh。

如果Git bash也失败,那就要考虑更换下生成SSH密钥的加密算法类型再试试,例如采用RSA类型,而不是ED25519。

靠谱推荐:Free Pos,微信JOCIHEZ

 

Logo

一站式 AI 云服务平台

更多推荐