Sdílet prostřednictvím


Use cloud-init to add a user to a Linux VM in Azure

Platí pro: ✔️ Flexibilní škálovací sady virtuálních počítačů s Linuxem ✔️

This article shows you how to use cloud-init to add a user on a virtual machine (VM) or virtual machine scale sets (VMSS) at provisioning time in Azure. This cloud-init script runs on first boot once the resources have been provisioned by Azure. For more information about how cloud-init works natively in Azure and the supported Linux distros, see cloud-init overview.

Add a user to a VM with cloud-init

One of the first tasks on any new Linux VM is to add an additional user for yourself to avoid the use of root. SSH keys are best practice for security and usability. Keys are added to the ~/.ssh/authorized_keys file with this cloud-init script.

To add a user to a Linux VM, create a file in your current shell named cloud_init_add_user.txt and paste the following configuration. V tomto příkladu vytvořte soubor v Cloud Shellu, ne na místním počítači. Můžete použít libovolný editor podle svojí volby. Ujistěte se, že se celý soubor cloud-init zkopíroval správně, zejména první řádek. You need to provide your own public key (such as the contents of ~/.ssh/id_rsa.pub) for the value of ssh-authorized-keys: - it has been shortened here to simplify the example.

#cloud-config
users:
  - default
  - name: myadminuser
    groups: sudo
    shell: /bin/bash
    sudo: ['ALL=(ALL) NOPASSWD:ALL']
    ssh-authorized-keys:
      - ssh-rsa AAAAB3<snip>

Poznámka:

The #cloud-config file includes the - default parameter included. This will append the user, to the existing admin user created during provisioning. If you create a user without the - default parameter - the auto generated admin user created by the Azure platform would be overwritten.

Before deploying this image, you need to create a resource group with the az group create command. Skupina prostředků Azure je logický kontejner, ve kterém se nasazují a spravují prostředky Azure. Následující příklad vytvoří skupinu prostředků s názvem myResourceGroup v lokaci eastus.

az group create --name myResourceGroup --location eastus

Now, create a VM with az vm create and specify the cloud-init file with --custom-data cloud_init_add_user.txt as follows:

az vm create \
  --resource-group myResourceGroup \
  --name vmName \
  --image imageCIURN \
  --custom-data cloud_init_add_user.txt \
  --generate-ssh-keys

Poznámka:

Odpovídajícím způsobem nahraďte hodnoty myResourceGroup, vmName a imageCIURN . Make sure an image with Cloud-init is chosen.

Připojte se přes SSH k veřejné IP adrese vašeho virtuálního počítače zobrazeného ve výstupu z předchozího příkazu. Zadejte vlastního uživatele a publicIpAddress následujícím způsobem:

ssh <user>@<publicIpAddress>

To confirm your user was added to the VM and the specified groups, view the contents of the /etc/group file as follows:

sudo cat /etc/group

The following example output shows the user from the cloud_init_add_user.txt file has been added to the VM and the appropriate group:

root:x:0:
<snip />
sudo:x:27:myadminuser
<snip />
myadminuser:x:1000:

Další kroky

Další příklady změn konfigurace cloud-init najdete v následujících tématech: