Входные учетные данные изображения сервера 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.
Ответ 2
Как насчет этого:
$ virt-customize -a bionic-server-cloudimg-amd64.img --root-password password:coolpass
Ответ 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