Входные учетные данные изображения сервера Ubuntu Cloud

Я пытаюсь создать облачную инфраструктуру с помощью VM

В руководствах Openstack упоминается, что изображения в этой ссылке содержат Openstack, предварительно установленные.

Я загрузил файл trusty-server-cloudimg-amd64-disk1.img, и я загрузил его с помощью KVM. Я создал экземпляр виртуальной машины, используя этот образ, но я не могу войти (используя консоль) или ssh в него.

Я не знаю имя пользователя и пароль по умолчанию для этой ОС.

Также (другой вопрос), я хотел бы создать Cloud с помощью двух виртуальных машин, можно ли использовать одно и то же изображение?

Ответ 1

18.04 пошаговая настройка

Короче нужно на хосте:

sudo apt-get install cloud-image-utils

cat >user-data <<EOF
#cloud-config
password: asdfqwer
chpasswd: { expire: False }
ssh_pwauth: True
EOF

cloud-localds user-data.img user-data

# user-data.img MUST come after the rootfs. 
qemu-system-x86_64 \
-drive file=ubuntu-18.04-server-cloudimg-amd64.img,format=qcow2 \
-drive file=user-data.img,format=raw \
-m 1G
...

и теперь вы можете войти через:

  • имя пользователя: ubuntu
  • пароль: asdfqwer

Здесь я опишу полный минимальный подробный рабочий пример QEMU: https://askubuntu.com/questions/281763/is-there-any-prebuilt-qemu-ubuntu-image32bit-online/1081171#1081171

Протестировано на хосте Ubuntu 18.04.

Ответ 3

Имя пользователя по умолчанию для изображения ubuntu ubuntu.
Не существует пароля по умолчанию, и вы не можете использовать ssh на машине, используя имя пользователя/пароль или подключаться через консоль VNC. Вы должны использовать метод аутентификации открытого/закрытого ключа с помощью ssh. Также высота sudo для учетной записи ubuntu без пароля.

После первого доступа к виртуальной машине вы можете изменить эти настройки и включить аутентификацию имени пользователя/пароля для ssh.

Относительно вашего второго вопроса,
Да, вы можете использовать одно и то же изображение для нескольких виртуальных машин.

Ответ 4

Вот несколько подробностей о том, как впервые войти в новый экземпляр Ubuntu, чтобы дополнить ответ @Athafoud.

В графическом интерфейсе OpenStack вы управляете своими открытыми/закрытыми ключами в Project> Compute> Access & Security. Создайте ключ SSH (например, используя ssh-keygen под Linux или macOS) и добавьте его к ключам OpenStack, нажав "Импортировать пару ключей". (Или вы можете "Создать пару ключей" из графического интерфейса OpenStack, а затем экспортировать ключи на свою рабочую станцию.)

Когда вы создаете новый экземпляр (VM), вы должны указать этот ключ как "пару ключей", которую вы будете использовать для первого входа в систему.

Когда ваш новый экземпляр запущен и работает, подключитесь к нему через SSH следующим образом:

ssh -i <keyfile> [email protected]<instance>

где <keyfile> - это имя ключа SSH, связанного с экземпляром, а <instance> - это имя хоста или IP-адрес экземпляра. Эта команда регистрирует вас в учетной записи ubuntu на экземпляре без запроса пароля.

Пользователь ubuntu имеет права sudo, поэтому вы можете войти в систему как root, набрав sudo -i после входа в систему, и управлять виртуальной sudo -i :-).

Ответ 5

Следующий код может быть использован для того, чтобы сделать cloudimg Ubuntu cloudimg для использования на машине Debian 7.2 (wheezy):

apt-get install pwgen
apt-get install genisoimage
git clone -b master https://git.launchpad.net/cloud-utils

printf "#cloud-config\n" > user-data
printf "password: 'pwgen 8 1'\nchpasswd: { expire: False }\nssh_pwauth: True\n" >> user-data
./cloud-utils/bin/cloud-localds user-data.img user-data

Впоследствии, вы должны запустить изображение, как это, из окна tmux чтобы убедиться, что оно продолжит работать, даже если вы выйдете из системы:

kvm -m 2048 -smp 2 -hda ubuntu-18.10-server-cloudimg-amd64.img -hdb user-data.img -net nic -net user,hostfwd=tcp::1810-:22 -nographic

Затем вы можете войти в систему как пользователь ubuntu и пароль, сгенерированный в user-data. Вход в систему может быть либо через последовательную консоль, напечатанную kvm (которая обычно будет довольно медленной, даже если у вас есть ssh-соединение поверх нее), либо через ssh с ssh [email protected] -p1810. Пользователь ubuntu по умолчанию получает доступ к sudo пароля в качестве пользователя root.


PS Я также пытался поиграть с добавлением ssh-authorized-keys, но формат cloud-config кажется очень хрупким, и на верхнем уровне он просто игнорируется, тогда как на уровне user users: как показано ниже, весь пользователь ubuntu кажется, ломается ( по крайней мере, часть пароля). Вот код для получения ключей в формате, который потенциально разборчив для облачной конфигурации:

printf "users:\n  - name: ubuntu\n    ssh-authorized-keys:\n" >> user-data
cat ~/.ssh/id_rsa.pub ~/.ssh/authorized_keys | sed 's/^/      - /g' >> user-data

(Обратите внимание, что password, по-видимому, может быть недопустимым полем для спецификации users, так как вместо этого он имеет хеш-код passwd, поэтому все это нарушает предыдущий код, потому что теперь пользовательская Ubuntu создается без пароля.)

Ответ 6

Смонтировать образ, а затем использовать chpasswd внутри chroot, было для меня самым простым решением:

modprobe nbd max_part=8 && qemu-nbd -c /dev/nbd0 image.raw && mkdir a && mount /dev/nbd0p1 a
chroot a sh -c "echo 'root:password' | chpasswd"
umount ./a && rmdir a && qemu-nbd -d /dev/nbd0