AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 861054
Accepted
Breedly
Breedly
Asked: 2017-07-09 08:25:29 +0800 CST2017-07-09 08:25:29 +0800 CST 2017-07-09 08:25:29 +0800 CST

在云世界中管理主机密钥

  • 772

我是 Ansible 和 Terraform 的忠实粉丝,因为我可以上下移动虚拟机并左右放置它们。但是,当我工作时,我经常被要求确认我信任库存主机密钥中的一些新创建的主机。

我可以关闭主机密钥检查,但如果我将其保持打开状态可能会更好,这样我就知道我的库存中的旧主机没有被篡改。(好像我什至会认出它们,或者记得它们已经被配置为虚拟机)。

在这个喧嚣、庞大的云世界中,主机密钥是否有用?或者我只是一个相信好的、老式身份方案的浪漫主义者?云世界有更好的方案吗?

ssh-keys
  • 1 1 个回答
  • 94 Views

1 个回答

  • Voted
  1. Best Answer
    Peter
    2017-07-09T08:38:50+08:002017-07-09T08:38:50+08:00

    我们在工作中有一个解决方案,我们使用已知 CA 签名的 SSH 主机证书来解决这个问题。如果您不熟悉 ssh 证书,您可以在 ssh-keygen 手册中了解它,并且那里有很多不错的指南:

    • https://www.digitalocean.com/community/tutorials/how-to-create-an-ssh-ca-to-validate-hosts-and-clients-with-ubuntu
    • https://framkant.org/2016/10/setting-up-a-ssh-certificate-authority-ca/

    云部分

    为了使 ssh 主机密钥唯一并在主机上生成,我们将私有主机 CA 密钥存储在我们使用的映像中。当映像第一次启动时,sshd 会生成新的密钥,然后我们有一个“firstboot”脚本,它基本上是这样做的:

    1. 使用 SSH CA 私钥签署主机密钥
    2. 删除 SSH CA 私钥
    3. 重新启动 sshd。

    然后,您所要做的就是通过将这个 CA 密钥添加到您的个人或全局 known_hosts 文件中来信任它。您现在可以在没有自动信任的情况下登录机器。

    这可能会给您带来一些安全问题,因为 CA 在第一次启动时在映像中可用,但它对我们有用,因为我们对基础架构有很好的控制,我们认为它足以在生成证书后将其删除。

    使用 SSHFP 的可能替代解决方案

    刚刚想到的另一个解决方案是使用 SSHFP 记录。如果你有一个 DNSSEC 签名分区,你可以让虚拟机通过某种方法向你的 DNS 服务器报告它们的密钥,然后使用 SSHFP 记录类型在 DNS 中发布它们的密钥。如果区域已签名,OpenSSH 客户端将信任这些记录。我为此写了一个简短的指南:

    • https://framkant.org/2015/11/publish-ssh-public-host-key-fingerprints-in-dns/
    • 2

相关问题

  • 谷歌云平台:从 project_A 中的 VM_1 ssh 到 project_B 中的 VM_2

  • OpenSSH 将 <IPv6>%2 添加到 known_hosts

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve