我想在构建 20.04 VM 期间管理 SSH 主机密钥的生成。默认情况下,首次启动时 cloud-init 会删除所有主机密钥并创建新的主机密钥。
自动安装文档没有提到这一点。云初始化文档提到可以使用“ssh_deletekeys: false”参数来控制这一点。
我尝试将其放在我的用户数据文件的顶部。即
#cloud-config
ssh_deletekeys: false
autoinstall:
...
这不管用。我还尝试在/target/var/lib/cloud/seed/nocloud-net/user-data
第一次重启之前手动添加它,但也没用。
我究竟做错了什么?
答案1
我认为你应该将ssh_deletekeys: false
配置文件放入/etc/cloud/cloud.cfg
。至少在 Debian 10 下它对我来说是有效的。
例子:
# The top level settings are used as module
# and system configuration.
ssh_deletekeys: false
# A set of users[...]
答案2
我在 cloud-init 和 ubuntu 20.04 中遇到了类似的问题,我的修复方法如下:
- 我使用自动安装文件配置了映像
- 在配置完成后,我运行此命令
sudo cloud-init clean
来删除 cloud-init 缓存,以使 cloud-init 能够像第一次启动一样运行(它将创建新的主机密钥) - 之后,我对映像进行系统准备并构建一个新的虚拟机