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 IDE有自己的Git扩展,既然我们设置了Git在C盘中的.SSH目录中的config配置无效,那会不会在VS 2022里面也会有一个类型于这样的配置呢?于是我搜索了一下果然让我发现了端倪。
vs2022\Enterprise\Common7\IDE\CommonExtensions\Microsoft\TeamFoundation\Team Explorer\Git\etc\ssh
如下是我对比VS2019和VS2022的配置:
1、修改本地代码关联的远程地址
git remote set-url origin https://gitee.com/ysgdaydayup/pingrixuexilianxi.git
2、重新拉取成功
git pulll
解决方案二,在ssh_config配置文件中添加对应主机地址配置
我们其实直接Copy一下VS2022新增现有配置,然后修改一下主机地址就可以了(注意添加好配置以后一定要重启一下VS 2022才会生效)。
1、该配置指的是对所有主机生效
Host * HostkeyAlgorithms +ssh-rsa PubkeyAcceptedAlgorithms +ssh-rsa
2、指定对应主机生效(xx.xxx.xxxx:22)
Host xx.xxx.xxxx:22 HostkeyAlgorithms +ssh-rsa PubkeyAcceptedAlgorithms +ssh-rsa
作者名称:追逐时光者
作者简介:一个热爱编程、善于分享、喜欢学习、探索、尝试新事物和新技术的全栈软件工程师。
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接,否则保留追究法律责任的权利。如果该篇文章对您有帮助的话,可以点一下右下角的【♥推荐♥】,希望能够持续的为大家带来好的技术文章,文中可能存在描述不正确的地方,欢迎指正或补充,不胜感激。