我正在尝试创建一个 cloud-init 配置文件,以便将我自己的 SSH 密钥注入 Multipass 实例的“ubuntu”用户。当我为自己创建一个新用户并为该用户设置 SSH 密钥时,我已成功注入了我的 SSH 密钥。但是,“ubuntu”用户的 SSH 密钥在此过程中消失了。我应该如何构造 YAML 文件,以便“ubuntu”用户保持不变,并且我仍然可以使用 SSH 访问机器?
以下是我的示例 cloud-init YAML 文件:
#cloud-config
users:
- default
- name: vmuser
sudo: ALL=(ALL) NOPASSWD:ALL
ssh_authorized_keys:
- ssh-rsa AAAAB3Nza....
output:
all: ">> /var/log/cloud-init-output.log"
此外,我还尝试使用 runcmd 和 echo 命令直接在 authorized_keys 文件中设置 SSH 密钥,如下所示:
runcmd:
- sudo echo "ssh-rsa AAAAB3Nza..." >> ~/home/ubuntu/.ssh/authorized_keys
然而,这并不管用。
任何有关如何实现此目的的帮助或指导都将不胜感激。谢谢!
答案1
该ssh_authorized_keys
密钥应满足您的需要。以下示例将为您的用户以及默认ubuntu
用户设置密钥:
#cloud-config
users:
- default
- name: vmuser
sudo: ALL=(ALL) NOPASSWD:ALL
ssh_authorized_keys:
- ssh-rsa AAAAB3Nza....
output:
all: ">> /var/log/cloud-init-output.log"
ssh_authorized_keys:
- ssh-rsa AAAAB3Nza....