安装Zscaler后MacOS下VSCode内置Git报主机密钥验证失败如何解决?
问题根因确认
你提到的终端需要手动输入yes的主机密钥变更提示,就是VSCode内置Git调用失败的直接原因:VSCode内置SCM功能调用Git时运行在非交互模式,无法响应交互式确认输入,遇到主机密钥校验不匹配的场景会直接返回host verification key failed错误。
该问题确实与Zscaler的流量中转机制相关:Zscaler会对SSH流量做代理转发,你访问内部GitHub站点的流量实际先到达Zscaler的代理节点,所以返回的SSH主机密钥和GitHub内部站点的原始密钥不一致,才会触发密钥不匹配的告警。
解决方案
方案1:配置SSH规则永久规避告警(推荐)
- 首先打开系统终端,执行一次任意Git操作(比如
git fetch),出现确认提示时输入yes,此时对应的主机密钥会被自动写入~/.ssh/known_hosts文件,后续单次固定IP的代理节点场景下,终端和VSCode内置Git都不会再弹出确认提示。 - 如果Zscaler代理节点IP不固定,输入
yes后仍反复弹出告警,可以修改SSH配置关闭对应站点的主机IP校验:
打开~/.ssh/config文件(不存在则手动新建),添加如下配置:
保存配置后生效,SSH会自动忽略该站点的IP地址变更带来的密钥校验告警,首次遇到新的有效密钥会自动写入信任列表,不需要手动确认。Host <替换为你的GitHub内部站点域名> CheckHostIP no StrictHostKeyChecking accept-new
方案2:临时关闭Git SSH密钥校验(不推荐,仅用于临时测试)
如果仅需要临时使用VSCode内置Git功能,可以执行如下命令关闭全局的SSH主机密钥校验:
git config --global core.sshCommand "ssh -o StrictHostKeyChecking=no"
该方案会降低SSH访问的安全性,测试完成后建议执行如下命令恢复配置:
git config --global --unset core.sshCommand
内容的提问来源于stack exchange,提问作者DodgyD
相关产品推荐
相关产品推荐

