在将VS 2022更新到17.1.1之后,我的Git出现了问题。例如,我不能评论fetch或pusl。我收到一条信息
从原点提取无法与{0}端口{1}协商:找不到匹配的主机密钥类型。他们的报价:ssh rsa无法从远程存储库中提取。有关更多详细信息,请参见"输出"窗口。获取时遇到错误:无法从远程存储库中获取。有关更多详细信息,请参见"输出"窗口。
然而,在VS 2019上运行良好,在SourceTree中我可以发表任何评论。所以这不是有缺陷的ssh-rsa的问题。
我该如何解决?
今天我在VS 2019社区版升级到最新版本时也发生了这种情况(但之前配置的Git连接的IP地址和端口为我显示(。
Visual Studio IDE有自己的Git扩展。尝试在文件夹层次结构中搜索该实例,并在其下搜索ssh配置文件VS2019社区版:
%PROGRAMFILES(x86)%MicrosoftVisualStudio2019CommunityCommon7IDECommonExtensionsMicrosoftTeamFoundationTeam ExplorerGitetcsshssh_config
使用适当的git服务器主机名或IP地址将此配置添加到此文件的末尾或者两者都用空格隔开(以在客户端启用不推荐使用/不安全的加密(:
Host gitserver.local
HostkeyAlgorithms +ssh-rsa
PubkeyAcceptedAlgorithms +ssh-rsa
这就是我的解决方案。
可能还有另一种解决方案可以升级Git服务器端,以支持更安全的加密(例如rsa-sha2-256或512(。
有点旧,但为了完整性。
如果更新VS 2022,则必须再次将行添加到ssh_config文件中。
为了防止这种情况,只需使用另一种密钥类型:
- 通过:
ssh-keygen -t ed25519 -C "your_email"
生成新密钥 - 获取id_ed25519.pub的内容,并将其添加到您的git帐户配置文件中(我们使用bitbucket(
- 您可能需要将id_ed25519和id_ed25.519.pub添加到.ssh文件夹中
一切都像一个魅力