Skip to content

cloud-init in impish makes /home/ubuntu/.ssh root.root #3894

@ubuntu-server-builder

Description

@ubuntu-server-builder

This bug was originally filed in Launchpad as LP: #1940233

Launchpad details
affected_projects = ['cloud-init (Ubuntu)', 'cloud-init (Ubuntu Bionic)', 'cloud-init (Ubuntu Focal)', 'cloud-init (Ubuntu Hirsute)', 'cloud-init (Ubuntu Impish)']
assignee = None
assignee_name = None
date_closed = 2021-08-23T20:16:44.132864+00:00
date_created = 2021-08-17T08:42:10.109458+00:00
date_fix_committed = 2021-08-21T03:32:21.196115+00:00
date_fix_released = 2021-08-23T20:16:44.132864+00:00
id = 1940233
importance = critical
is_complete = True
lp_url = https://bugs.launchpad.net/cloud-init/+bug/1940233
milestone = None
owner = paelzer
owner_name = Christian Ehrhardt 
private = False
status = fix_released
submitter = paelzer
submitter_name = Christian Ehrhardt 
tags = ['rls-ii-incoming']
duplicates = []

Launchpad user Christian Ehrhardt (paelzer) wrote on 2021-08-17T08:42:10.109458+00:00

Hi,
I got to this by my systems complaining to be unable to do ssh-keygen
after deployment. Example:
$ uvt-kvm ssh --insecure impish-kvm 'ssh-keygen -b 2048 -t rsa -f ~/.ssh/id_rsa -q -N '''''''
Saving key "/home/ubuntu/.ssh/id_rsa" failed: Permission denied

I found that is due to permissions after guest spawning:
/home/ubuntu/.ssh changed

Old:
drwx------ 2 ubuntu ubuntu 4096 Aug 17 08:20 .ssh/

New:
drwxr-xr-x 2 root root 4096 Aug 17 08:17 .ssh/

That beaks later things like ssh-keygen.

uvt-kvm only does instruct cloud-init to place a key.
This uses ssh_authorized_keys from
https://cloudinit.readthedocs.io/en/latest/topics/modules.html?highlight=ssh_authorized_keys#authorized-keys

Checked a few guests:
I've seen this on

  • impish x86
  • impish s390x

I've not seen this on

  • bionic
  • focal
  • impish

You might say - wait a minute impish in both lists.
But it is the date:

Bad
com.ubuntu.cloud.daily:server:21.10:amd64 20210815
cloud-init 21.2-69-g65607405-0ubuntu1

Good
com.ubuntu.cloud.daily:server:21.10:amd64 20210706
cloud-init 21.2-3-g899bfaa9-0ubuntu2

And either this cloud-init version is broken or the underlying new impish image.
I mounted the underlying cloud-image (without customization by cloud-init)
and found that /home is empty (true for all those images).

So to me that seems to be an issue in the new cloud-init that now is in
those images.

Steps to reproduce

if your host has no keys to push to the guest run ssh-keygen

sync the latest broken images

$ uvt-simplestreams-libvirt --verbose sync --source http://cloud-images.ubuntu.com/daily arch=amd64 label=daily release=impish

spawn guest

$ uvt-kvm create --password=ubuntu i release=impish arch=amd64 label=daily

wait for it and check the permissions

$ uvt-kvm wait i
$ uvt-kvm ssh i "ls -laF /home/ubuntu/"
drwxr-xr-x 2 root root 4096 Aug 17 08:17 .ssh/

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions