【问题标题】:How to prevent CI automation failures due to missing ssh key fingerprints?如何防止由于缺少 ssh 密钥指纹而导致 CI​​ 自动化失败?
【发布时间】:2016-11-11 18:48:04
【问题描述】:

众所周知,将-o StrictHostKeyChecking=no 添加到 ssh 会打开一个很大的 MITM 安全漏洞。尽管如此,在进行自动化时,我们确实希望避免破坏构建,因为我们没有在交互模式下运行。

StrictHostKeyChecking 似乎只有 3 种模式,它们都无法涵盖您希望在不冲突的情况下自动接受未知键的情况。

  • ask: 不适用于自动化
  • no:启用 MITM,严重的安全问题
  • yes: 如果指纹未知,则无法使用

那么,我们如何使这项工作自动化,自动学习新密钥,但如果它们与现有密钥不匹配则失败?

【问题讨论】:

    标签: git bash ssh


    【解决方案1】:

    那么,我们如何才能使这项工作自动化,自动学习新密钥,但如果它们与现有密钥不匹配,则会失败?

    这对no 选项基本有效,当第一个公钥来自某个中间人时。

    您应该通过不同的安全通道获取初始密钥并将其存储在~/.ssh/known_hosts。一种可能性是使用 SSH 证书并信任证书颁发机构,而不是单个密钥。

    如果您不介意初始密钥设置,另一种可能性是使用ssh-keyscan,它将从服务器获取密钥并将它们存储在known_hosts

    ssh-keyscan host >> ~/.ssh/known_hosts
    

    然后使用StrictHostKeyChecking yes 将完全满足您的需求。

    【讨论】:

      猜你喜欢
      • 2020-08-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-10-25
      • 2019-12-08
      • 2016-07-23
      • 1970-01-01
      • 2017-08-26
      相关资源
      最近更新 更多