执行terraform init遇Git主机真实性验证及SSH认证失败求助
解决Terraform Init下载Azure DevOps模块的SSH验证及权限问题
一、主机真实性提示框的输入说明
这个提示是SSH的主机身份验证请求,正常输入完整的yes(仅输入y在部分环境下不生效)即可通过,但如果仍报错,说明非交互式环境下Terraform无法处理交互式提示,更可靠的方式是提前将Azure DevOps的SSH主机密钥写入known_hosts,无需依赖提示框输入。
二、修正主机密钥添加命令
你之前的命令存在语法错误,导致主机密钥未正确写入,执行以下修正后的命令:
- 添加
ssh.dev.azure.com的主机密钥:
ssh-keyscan -H -t rsa ssh.dev.azure.com >> $env:userprofile/.ssh/known_hosts
- 添加模块源用到的
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密钥,按以下步骤排查:
- 确保本地生成的是RSA密钥对(Azure DevOps推荐此类型),生成命令:
ssh-keygen -t rsa -b 4096 -C "你的邮箱地址"
- 将公钥(默认路径
~/.ssh/id_rsa.pub内的全部内容)添加到Azure DevOps账号:
登录Azure DevOps,进入用户设置 → SSH公钥,点击"添加公钥",粘贴公钥内容后保存
- 将公钥(默认路径
- 启动SSH代理并添加私钥(Git Bash终端执行):
eval $(ssh-agent -s) ssh-add ~/.ssh/id_rsa
- 测试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
相关产品推荐
相关产品推荐

