升级VS2022后Git报ssh-rsa无匹配主机密钥类型问题排查
配置无效的核心原因
你写的SSH配置存在两个致命问题,导致规则完全不生效:
Host配置段的匹配规则仅支持填写主机名/IP的匹配模式,不能把连接用户名(git@前缀)、端口号(:7999后缀)写在Host字段后,你写的匹配规则根本命中不了实际连接的目标地址,后续加的算法放行配置自然不会被加载。- Visual Studio 2022 内置的Git组件默认读取当前Windows用户目录下的用户级SSH配置,路径为
C:\Users\<你的用户名>\.ssh\config,如果你之前修改的是Git安装目录下的系统级ssh_config文件,VS不会读取该文件的配置。
正确修复步骤
- 打开资源管理器,进入当前用户的
.ssh目录,默认路径为C:\Users\你的Windows登录用户名\.ssh。如果目录下没有无后缀名的config文件,就新建一个纯文本文件,重命名为config(注意开启文件后缀显示,避免存成config.txt导致识别失败)。 - 清空文件里之前写错的配置,写入以下正确规则:
# 匹配IP形式的Git服务地址 Host 192.168.16.140 Port 7999 HostkeyAlgorithms +ssh-rsa PubkeyAcceptedAlgorithms +ssh-rsa # 匹配devtools域名形式的Git服务地址 Host devtools Port 7999 HostkeyAlgorithms +ssh-rsa PubkeyAcceptedAlgorithms +ssh-rsa
- 打开PowerShell或者Git Bash,先执行命令测试SSH连通性:
ssh -T git@192.168.16.140
如果弹出主机指纹确认提示,输入yes回车,正常返回BitBucket的欢迎/认证成功提示就说明配置已经生效。 - 重启Visual Studio,重新打开仓库后再执行pull、push操作即可恢复正常。
补充排查点:如果按上述操作后仍报错,可以打开VS的「选项-源代码管理-Git全局设置」,确认SSH可执行文件路径指向你当前安装的Git for Windows目录下的
usr\bin\ssh.exe,避免VS调用了版本不匹配的系统自带OpenSSH组件。
内容的提问来源于stack exchange,提问作者WebInspired
相关产品推荐
相关产品推荐

