Ubuntu Multipass Cloud-init SSH 问题:在注入我自己的密钥时保留“ubuntu”用户的 SSH 密钥

Ubuntu Multipass Cloud-init SSH 问题:在注入我自己的密钥时保留“ubuntu”用户的 SSH 密钥

我正在尝试创建一个 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....

相关内容