[Bug 2049860] Re: cloud-init cloud-config for ssh broken in jammy

Alberto Contreras 2049860 at bugs.launchpad.net
Fri Apr 12 11:00:29 UTC 2024


Hi DisasteR, thanks for attaching the logs.

ssh_pwauth gets handled by the set_passwords config module, which runs
as part of the cloud-config stage.

The problem is that cloud-config and cloud-final stages didn't run
because cloud-init is instructed to be disabled.

Some stanza in your user-data, vendor-data, instance-data or system-cfg
instructs the config module write_files, which runs before cloud-config,
to disable cloud-init.

One can see this in the log files and in:

# /run/cloud-init/combined-cloud-config.json
...
 "write_files": [
  {
   "owner": "root:root",
   "path": "/etc/cloud/cloud-init.disabled",
   "permissions": "0644"
  }

One solution, if the disablement is still desired, is to use the defer
subkey[1] of write-files to instruct cloud-init to touch the file as
part of the cloud-final stage, not disturbing the other stages during
the first boot.

[1] https://docs.cloud-init.io/en/latest/reference/modules.html#write-
files

-- 
You received this bug notification because you are a member of Ubuntu
Foundations Bugs, which is subscribed to livecd-rootfs in Ubuntu.
https://bugs.launchpad.net/bugs/2049860

Title:
  cloud-init cloud-config for ssh broken in jammy

Status in cloud-images:
  Fix Committed
Status in cloud-images focal series:
  New
Status in livecd-rootfs package in Ubuntu:
  Confirmed
Status in livecd-rootfs source package in Focal:
  Fix Released
Status in livecd-rootfs source package in Jammy:
  Fix Released

Bug description:
  [impact]
  cloud-config overrides via cloud-init for ssh do no longer work. Eg.

  #cloud-config
  ssh_pwauth: True

  doesn't enable password authentication anymore.

  The reason is that https://git.launchpad.net/livecd-
  rootfs/commit/live-build/ubuntu-
  cpc/hooks.d/chroot/052-ssh_authentication.chroot?h=ubuntu/jammy&id=3b2eeb017153cbbfc8935f9447e00d196e34d983
  is a wrong backport using the wrong filename
  /etc/ssh/sshd_config.d/10-cloudimg-settings.conf . it needs to be
  /etc/ssh/sshd_config.d/60-cloudimg-settings.conf . See
  https://git.launchpad.net/livecd-rootfs/tree/live-build/ubuntu-
  cpc/hooks.d/chroot/052-ssh_authentication.chroot?h=ubuntu/master which
  is the correct change in the ubuntu/master branch.

  This bug needs only fixing in Jammy and Focal because the fix is
  correct in > Jammy. Jammy has this bug already in the -updates pocket
  but Focal only has the wrong fix in its git branch.

  [test plan]
  * build an image with the proposed fix
  * use a cloud-init cloud-config data to enable ssh password auth (which is disabled by default)
  * check after image boot with "sshd -T" if password authentication is enabled
  * make sure that the file written by cloud-init in /etc/ssh/sshd_config.d/ has a lower number than the file from the image (cloudimg-settings.conf)

  [ Where problems could occur ]
  The change does rename a single file to have correct ordering between the prebuilt cloud images and cloud-init. There are edge-cases where this could create problems but those are acceptable:

  - rebuilt images based on the Ubuntu image which try to delete
  10-cloudimg-settings.conf would no longer work

  But in general this is a bug fix for the changes introduced in
  LP:#1968873

To manage notifications about this bug go to:
https://bugs.launchpad.net/cloud-images/+bug/2049860/+subscriptions




More information about the foundations-bugs mailing list