You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Windows设备SSH克隆Azure DevOps仓库报ssh-rsa及SSL证书相关错误

问题根因

两个报错均为新Windows设备自带软件版本的默认安全策略与Azure DevOps服务端兼容问题导致,和密钥生成、公钥配置、仓库权限无关:

  1. SSH协商报错:新Windows预装的OpenSSH 8.8+版本默认禁用了ssh-rsa主机密钥算法,而Azure DevOps的SSH服务当前仍默认提供ssh-rsa类型的主机密钥,算法不匹配导致连接直接中断——报错中Unable to negotiate with port 22中间的host字段为空是协商中断时还没完成连接握手,不是仓库地址填写错误。旧设备OpenSSH版本低于8.8,默认未禁用ssh-rsa所以可以正常连接。
  2. SSL证书报错:Visual Studio 2019自带的Git for Windows版本内置CA证书库较旧,若你处于公司内网走代理抓包,会因为证书链不被信任触发该报错。
修复步骤

修复SSH连接问题

  • 打开资源管理器进入当前用户的SSH配置目录,默认路径为C:\Users\<你的Windows登录用户名>\.ssh
  • 若目录下无名为config的无后缀文件,新建纯文本文件,命名为config(注意要关闭资源管理器的“隐藏已知文件扩展名”选项,避免文件实际名为config.txt导致配置不生效)
  • 在config文件中写入以下配置,针对Azure DevOps域名单独放开ssh-rsa算法支持:
Host ssh.dev.azure.com
  HostName ssh.dev.azure.com
  User git
  HostKeyAlgorithms +ssh-rsa
  PubkeyAcceptedKeyTypes +ssh-rsa
  IdentitiesOnly yes
  IdentityFile ~/.ssh/id_rsa

注意:如果你生成SSH私钥时自定义了文件名或存储路径,将IdentityFile后的路径替换为你私钥的实际绝对路径即可

  • 打开PowerShell或CMD执行连通性测试命令:ssh -T git@ssh.dev.azure.com,若返回认证成功的提示(会显示你的Azure DevOps账号关联信息),说明SSH配置生效。

修复SSL证书报错

  • 长期安全方案:如果处于公司内网环境,向IT运维部门获取内网代理/网关的根证书,分别导入到Windows系统“受信任的根证书颁发机构”存储、以及VS2019自带Git的信任证书库中即可。
  • 临时测试方案:打开VS2019的Git全局设置,添加配置项http.sslVerify = false临时关闭SSL校验,仅用于验证克隆流程,测试完成后务必改回true,避免遭遇中间人攻击。
验证注意事项
  • 优先在命令行执行git clone <你的仓库SSH克隆地址>验证,命令行克隆成功后再通过VS2019操作,VS2019会自动读取当前用户目录下的SSH配置和全局Git配置,无需在VS内重复配置密钥。
  • 如果提示私钥权限错误,右键点击私钥文件→属性→安全,删除除当前Windows登录用户外的所有权限条目,确保仅当前用户拥有私钥的读取权限,OpenSSH会拒绝读取权限过宽的私钥文件。

内容的提问来源于stack exchange,提问作者Mahbub

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.27 11:48:25