Как установить собственный пароль с помощью Cloud-init в Ubuntu 20.04?

Недавно я заставил Cloud-Init работать, смонтировав мою конфигурацию в образ. Все нормально, работает. Если я сломаю конфиг, он мне скажет. Но он не говорит мне, почему мне не разрешено войти в систему.

Я пробовал создать свой собственный пароль, используя echo possible | mkpasswd -m sha-512 -s и скопировав пример, найденный на странице быстрого запуска: https://wiki.ubuntu.com/FoundationsTeam/AutomatedServerInstalls/QuickStart

Ни работать. Я тоже пробовал установить собственное имя пользователя. Ничего не меняет. Значение по умолчанию ubuntu:ubuntu также недоступно. Также нет убунту и пусто.

Что я использую:

https://releases.ubuntu.com/20.04/ubuntu-20.04-live-server-amd64.iso

https://wiki.ubuntu.com/FoundationsTeam/AutomatedServerInstalls/QuickStart

# echo possible | mkpasswd -m sha-512 -s                                    
$6$nqZiIASVBA.iF$9nubU0ImWVrv4XhtEq9XhSh9UYNFQ7yC9Lf7A.uheSlJ3cgI5d9ltkUwRq.X8lAwoQuLAMem6v.gJNGYwk5XA0

Следующая конфигурация с предоставленным паролем или указанное выше;

#cloud-config
autoinstall:
  version: 1
  identity:
    hostname: ubuntu-server
    password: "$6$exDY1mhS4KUYCE/2$zmn9ToZwTKLhCw.b4/b.ZRTIZM30JZ4QrOQ2aOXJ8yk96xpcCof0kxKwuX1kqLG/ygbJ1f8wxED22bTL4F46P0"
    username: ubuntu

Я также пробовал настроить такой блок пользователей:

https://gist.github.com/leogallego/a614c61457ed22cb1d960b32de4a1b01#file-ubuntu-cloud-virtualbox-sh-L46-L56

Я прошу:

  • Лучшая документация о том, какой тип хеша ожидается.
  • Рабочий конфиг пользовательских данных

person Mies van der Lippe    schedule 04.05.2020    source источник


Ответы (3)


Я столкнулся с той же проблемой. Используя оболочку во время процесса установки, я вижу, что пользователи не создаются, поэтому мы не можем войти в систему после перезагрузки. Я не знаю почему, либо из-за частичной ошибки, либо из-за отсутствия документации о том, как ее правильно использовать. Тем не менее, я смог создать пользователя, используя этот трюк в моем файле автоустановки:

  late-commands:
    - useradd -m -R /target -u 1001 ubuntu
    - echo "ubuntu:ubuntu" | chroot /target /usr/sbin/chpasswd
    - usermod -R /target -aG sudo ubuntu
person Sylvere Richard    schedule 16.05.2020
comment
Увидев ваш ответ, я снова начал искать, и с тех пор, как он опубликовал это, множество людей пожаловались на реализацию cloud-init. Однако я нашел другую конфигурацию, в которой кто-то делает что-то подобное (20.04 в Vbox), и их раздел пользователей включает некоторые параметры, которых я раньше не видел. Добавление оболочки и установка для параметра lock-passwd значения false, по-видимому, решает проблему. Какая это была поездка. - person Mies van der Lippe; 18.05.2020
comment
@MiesvanderLippe У вас есть ссылка на страницу конфигурации Vbox, на которую вы ссылаетесь? Я видел ваш другой ответ - вы когда-нибудь находили способ «исправить» учетную запись ubuntu? - person monkeyhybrid; 13.06.2020
comment
Я использую это с VirtualBox; superuser.com/questions/827977/use-cloud-init -with-virtualbox Но я написал сценарий, чтобы он монтировался автоматически с помощью команд VboxManage. Не уверен в учетной записи ubuntu. Я отказался от этой BS после того, как никто не ответил, и просто установил 4 виртуальных машины сам. Остальное я выполняю с помощью Ansible. - person Mies van der Lippe; 13.06.2020

Наконец-то я нашел рабочую конфигурацию, которая создает пригодную для использования учетную запись;

users:
  - default
  - name: kim
    passwd: "$6$kW4vfBM9kGgq4hr$TFtHW7.3jOECR9UCBuw9NrdSMJETzSVoNQGcVv2y.RqRUzWDEtYhYRkGvIpB6ml1fh/fZEVIgKbSXI9L1B6xF."
    shell: /bin/bash
    lock-passwd: false
    ssh_pwauth: True
    chpasswd: { expire: False }
    sudo: ALL=(ALL) NOPASSWD:ALL
    groups: users, admin
    ssh_authorized_keys:
     - ssh-rsa ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQCbJ7oF5RXUj6R1ewF15X2i6RieWFmVUkOyT0DwzgfI8fRl5mMMSRlDRYQi3NznwcWDAxLApF82FomNv8vk1V2SXDGGs8XpOvtgAPpR3JUKJGmxoiES7rxa7bq/JSmpGprsnlCocTJnOfDz6Gz2Ge4+D84EZHOW7ejbkWDBdXOYYRMIlRSoXBkb0017G/OIvPNdwZRYLzLJYjGGL08GX+/Da+lrbz8/FaewXwb/BfjRYESOG+aJNTCOQfgzNsFGJ6EslsMc1bDtCq2pvWUenlUo/2BEAICiJxmXZkAjDrIYcyTzHLE14+UfCiC6pbMEdXF2ndUARr0HcNpvJz8K0Mg4CfjRpxaopfPfHp/lMR36ys0r4bT3q9iU4ClnUAeWxbCK7pUN+D/6TVrIKLOLuuIph81sb5+jW23ycg0fjQ/2/ttKQvTzHwomN6B6T/KgXVt367Iq+uzN02wtk282pJOIIqVi3PSHVcJl1I+bFAzeEdmJP29d/wnp0ZyuNYDp0P8= miesl@mies-pc

autoinstall:
    version: 1
    identity:
        hostname: yamanouchi-node-1
        username: ubuntu
        password: "$6$exDY1mhS4KUYCE/2$zmn9ToZwTKLhCw.b4/b.ZRTIZM30JZ4QrOQ2aOXJ8yk96xpcCof0kxKwuX1kqLG/ygbJ1f8wxED22bTL4F46P0"
    refresh-installer:
        update: yes

Он создает пользователя с именем kim и паролем possible. Я не совсем уверен, нужен ли установщик обновления (я так не думаю). Это безумно небезопасно с паролем ssh и без пароля root, но эй. Вы можете настроить это самостоятельно.

Учетная запись ubuntu остается непригодной для использования. Я не понимаю, почему.

person Mies van der Lippe    schedule 18.05.2020
comment
Дополнительная строка ssh-rsa в вашем примере не позволяла работать с ключом ssh. Удалив его, я смог использовать ключ аутентификации для входа в систему. - person mike; 12.04.2021
comment
Спасибо! Для записи, этот users раздел также работает, если его поместить в autoinstall/user-data. - person bviktor; 29.04.2021

Для ubuntu 20.04 я обнаружил, что не могу войти в консоль без / etc / securetty. Я отвечаю на это, потому что неясно, пытаетесь ли вы получить доступ к своей учетной записи через консоль.

runcmd:
    - cp /usr/share/doc/util-linux/examples/securetty /etc/securetty

Я обнаружил, что если я установлю / etc / securetty как runcmd, то смогу затем войти в систему с этими пользователями облачной конфигурации на системной консоли. В противном случае аутентификация не удастся.

Я не заявляю о последствиях использования этого примера для безопасности.

person mike    schedule 12.04.2021