Login credentials of Ubuntu Cloud server image

2019-01-25 08:19发布

问题:

I am trying to build a cloud infrastructure using VM's

In the Openstack manuals, it is mentioned that the images in this link contain, Openstack pre-installed.

I downloaded the trusty-server-cloudimg-amd64-disk1.img file and I loaded it using KVM. I instantiated a Virtual Machine using this image but I am not able to login (using the console) or ssh into it.

I do not know the default username and password of that OS.

Also (a different question), I would like to build a Cloud using the 2 Virtual Machines, is it possible to use the same image?

回答1:

The default username for ubuntu image is ubuntu.
There is not a default password, and you can not ssh to the machine using username / password or connect through the VNC console. You have to use public / private key authentication method with ssh. Also sudo elevation for ubuntu account is passwordless.

After accessing for the first time your virtual machine, you can change those settings and enable username / password authentication for ssh.

Regarding your second question,
Yes, you can use the same image for multiple virtual machine.



回答2:

18.04 setup step-by-step

In short you need on the host:

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
...

and now you can login with:

  • username: ubuntu
  • password: asdfqwer

Here I describe a full minimal detailed working QEMU example: https://askubuntu.com/questions/281763/is-there-any-prebuilt-qemu-ubuntu-image32bit-online/1081171#1081171

Tested on an Ubuntu 18.04 host.



回答3:

Here are some details on how to log into a new Ubuntu instance for the first time, to complement @Athafoud's answer.

In the OpenStack GUI, you manage your public/private keys under Project > Compute > Access & Security. Create an SSH key (e.g. by using ssh-keygen under Linux or macOS) and add it to the OpenStack keys by clicking on "Import Key Pair". (Or you can "Create a Key Pair" from within the OpenStack GUI and then export the keys to your workstation.)

When you create the new instance (VM), you have to specify this key as the "keypair" you will use to log in for the first time.

Once your new instance is up and running, connect to it via SSH as follows:

ssh -i <keyfile> ubuntu@<instance>

where <keyfile> is the name of the SSH key you associated with the instance, and <instance> is the hostname or IP address of the instance. This command logs you into the ubuntu account on the instance without asking for a password.

The ubuntu user has sudo privileges, so you can become root by typing sudo -i after login, and manage the VM as you please :-).



回答4:

The following code could be used to make the Ubuntu cloudimg usable on a Debian 7.2 (wheezy) machine:

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

Subsequently, you'd start the image like this, from within a tmux window to make sure it'll keep running even if you logout:

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

You can then login into the machine as user ubuntu and the password as generated within the user-data file. The login can be either through the serial console printed by kvm (which would normally be pretty slow, even if you have an ssh connection on top of it), or through ssh with ssh ubuntu@localhost -p1810. The user ubuntu gets passwordless sudo access as root by default.


P.S. I've also tried playing with adding the ssh-authorized-keys, but cloud-config format seems very fragile, and at top level it's just ignored, whereas at a users: level as below, the whole ubuntu user seems to break (at least the password part of it). Here's the code to get the keys into a format that's potentially legible for cloud-config:

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

(Note that the password, apparently, may not be a valid field for the users specification, as it has a passwd hash instead, so, the whole thing breaks the prior code, because now the user ubuntu gets created without a password.)