使用 cloud init autoinstall ubuntu 备份和恢复主机 ssh_keys

使用 cloud init autoinstall ubuntu 备份和恢复主机 ssh_keys

我正在尝试使用 autoinstall、cloud-init、qcow2 和 virt-install 自动执行 ubuntu 22.04 的 VM 安装。当我在同一个 qcow2 文件上重新安装操作系统时,我有一个在 early-commands 中运行的脚本,它会检查是否已经存在操作系统,如果存在,它会挂载该文件系统并将主机 ssh 密钥从 /etc/ssh/ 下备份到 RAM,我还有另一个在 late-commands 中运行的脚本,它会将这些备份的密钥从 RAM 还原到新安装的系统中,基本上是将它们从 RAM 复制到 /target/etc/ssh/ 中。现在,直到这部分,一切正常,但是 cloud-init 会为 VM 生成新的主机 ssh 密钥并覆盖我从上次安装中复制的主机 ssh 密钥。这在 cloud-init 运行第一次重启时会发生。有没有办法改变这种行为,以便 cloud-init 不会生成新的主机密钥(如果它们已经存在于 /etc/ssh/ 下)?

答案1

翻翻来源,看起来你只需要重置ssh_deletekeys配置设置(你可以找到在文档中)。

密钥生成代码只会在密钥尚不存在时生成密钥。换句话说,cloud-init 不会覆盖您恢复的主机密钥,而是 (a) 删除它们,然后 (b) 生成新密钥,因为它们不存在。如果您阻止 (a) 发生,则 (b) 不需要生成任何新密钥。

相关内容