首页 > 解决方案 > 尽管提供了有效的密钥,但 SSH 身份验证失败并显示“主机密钥验证失败”

问题描述

在 Azure DevOps Pipelines 中,我想通过 SSH 连接到具有依赖项的私有存储库。我收到以下错误:

主机密钥验证失败。致命:无法从远程存储库中读取。

尽管将私钥上传到安全文件,但在项目变量中设置了公钥。

见下文

steps:  
- task: InstallSSHKey@0
  inputs:
    hostName: $(hostname)
    sshPublicKey: $(testkey.pub)
    sshPassphrase: $(passphrase)
    sshKeySecureFile: testkey


- script: |
    git clone git@github.xxxxxx.com:xxxx/xxxxx.git
  displayName: 'clone repo' 

标签: githubsshazure-devops

解决方案


主机密钥验证失败

这不是指您尝试用于连接的 SSH 密钥。它指的是服务器的SSH公钥指纹这是您第一次连接到新机器时看到(并且应该检查)的内容。

验证主机密钥指纹可防止中间人攻击,其中恶意第三方可能位于您和您的目标服务器之间,在观察或修改所述通信时来回传递通信。Azure 文档也讨论了这一点

手动 SSH 到机器一次,检查指纹是否符合您的预期,然后接受。除非指纹发生变化,否则后续连接应该可以工作。


推荐阅读