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

执行terraform init遇Git主机真实性验证及SSH认证失败求助

解决Terraform Init下载Azure DevOps模块的SSH验证及权限问题

一、主机真实性提示框的输入说明

这个提示是SSH的主机身份验证请求,正常输入完整的yes(仅输入y在部分环境下不生效)即可通过,但如果仍报错,说明非交互式环境下Terraform无法处理交互式提示,更可靠的方式是提前将Azure DevOps的SSH主机密钥写入known_hosts,无需依赖提示框输入。

二、修正主机密钥添加命令

你之前的命令存在语法错误,导致主机密钥未正确写入,执行以下修正后的命令:

  1. 添加ssh.dev.azure.com的主机密钥:
ssh-keyscan -H -t rsa ssh.dev.azure.com >> $env:userprofile/.ssh/known_hosts
  1. 添加模块源用到的vs-ssh.visualstudio.com主机密钥:
ssh-keyscan -H -t rsa vs-ssh.visualstudio.com >> $env:userprofile/.ssh/known_hosts

注意:用>>追加而非>覆盖,避免清空已有known_hosts内容;命令需全小写,且ssh-keyscan是完整命令,不能拆分。

三、解决SSH公钥认证失败问题

报错Public key authentication failed说明Azure DevOps未识别你的SSH密钥,按以下步骤排查:

    1. 确保本地生成的是RSA密钥对(Azure DevOps推荐此类型),生成命令:
ssh-keygen -t rsa -b 4096 -C "你的邮箱地址"
    1. 将公钥(默认路径~/.ssh/id_rsa.pub内的全部内容)添加到Azure DevOps账号:
      登录Azure DevOps,进入用户设置 → SSH公钥,点击"添加公钥",粘贴公钥内容后保存
    1. 启动SSH代理并添加私钥(Git Bash终端执行):
eval $(ssh-agent -s)
ssh-add ~/.ssh/id_rsa
    1. 测试SSH连接有效性:
ssh -T git@vs-ssh.visualstudio.com

返回Hello {你的用户名}! You've successfully authenticated...则说明配置正常。

四、额外排查点

  • 确认Terraform模块的source字段中,组织名、项目名、仓库名与Azure DevOps上的完全一致(大小写敏感)
  • 确保你的Azure DevOps账号拥有该仓库的读取权限(至少为Reader或Contributor角色)
  • Windows环境下,确认Git Bash与PowerShell使用的是同一套known_hosts和SSH密钥(默认均在C:\Users\<你的用户名>\.ssh目录下)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 09:50:25