Visual Studio 2022 git error Unable to negotiate with xx.xxx.xxxx port 22: no matching host key type found. Their offer: ssh-rsa

前言

  前两天因为升级了Git导致git提交拉取的时候都提示下面这个异常,然后经过一番折腾以后终于把这个问题解决了。但是今天我升级了下Visual Studio 2022将其升级到了17.1.3版本然后又出现了这个问题,奇怪的是我使用VS 2019没有问题(VS2019没有升级),然后使用Git Bash也是可以正常拉取提交。唯独使用VS 2022就提示下面的异常(真的是问题天天有,四月特别多):

Unable to negotiate with xx.xxx.xxxx port 22: no matching host key type found. Their offer: ssh-rsa
Git failed with a fatal error.
Git failed with a fatal error.
Could not read from remote repository.
 
Please make sure you have the correct access rights
and the repository exists. 

vs 2022版本

Visual Studio 2022 git error Unable to negotiate with xx.xxx.xxxx port 22: no matching host key type found. Their offer: ssh-rsa_第1张图片

问题分析

因为Visual Studio IDE有自己的Git扩展,既然我们设置了Git在C盘中的.SSH目录中的config配置无效,那会不会在VS 2022里面也会有一个类型于这样的配置呢?于是我搜索了一下果然让我发现了端倪。

vs2022\Enterprise\Common7\IDE\CommonExtensions\Microsoft\TeamFoundation\Team Explorer\Git\etc\ssh

Visual Studio 2022 git error Unable to negotiate with xx.xxx.xxxx port 22: no matching host key type found. Their offer: ssh-rsa_第2张图片

如下是我对比VS2019和VS2022的配置:

Visual Studio 2022 git error Unable to negotiate with xx.xxx.xxxx port 22: no matching host key type found. Their offer: ssh-rsa_第3张图片

解决方案一,切换成HTTPS的方式

1、修改本地代码关联的远程地址

git remote set-url origin https://gitee.com/ysgdaydayup/pingrixuexilianxi.git

2、重新拉取成功 

git pulll

解决方案二,在ssh_config配置文件中添加对应主机地址配置

我们其实直接Copy一下VS2022新增现有配置,然后修改一下主机地址就可以了(注意添加好配置以后一定要重启一下VS 2022才会生效)。

Visual Studio 2022 git error Unable to negotiate with xx.xxx.xxxx port 22: no matching host key type found. Their offer: ssh-rsa_第4张图片

1、该配置指的是对所有主机生效

Host *
     HostkeyAlgorithms +ssh-rsa
     PubkeyAcceptedAlgorithms +ssh-rsa

2、指定对应主机生效(xx.xxx.xxxx:22)

Host xx.xxx.xxxx:22
       HostkeyAlgorithms +ssh-rsa
       PubkeyAcceptedAlgorithms +ssh-rsa

 

你可能感兴趣的:(Visual Studio 2022 git error Unable to negotiate with xx.xxx.xxxx port 22: no matching host key type found. Their offer: ssh-rsa)