Add SSH Key to VMSS

Run Command:

az vmss run-command invoke --resource-group {VMSS_RESOURCE_GROUP} --name {VMSS_NAME} --command-id RunShellScript --instance-id {VMSS_ID} --scripts "echo '{PUBLIC_SSH_KEY}' >> /home/{USERNAME}/.ssh/authorized_keys"

Run Script for multiple instances:

instances=$(az vmss nic list -g {RESOURCE_GROUP_NAME} --vmss-name {VMSS_NAME} --query "[].ipConfigurations[].[privateIpAddress,id]" --output tsv | sed -e 's/^\([0-9\.]*\).*\/\([0-9]*\)\/.*$/\2/g')
for i in $instances; do
  echo "Working on $i"
  az vmss run-command invoke --resource-group {RESOURCE_GROUP_NAME} --name {VMSS_NAME} --command-id RunShellScript --instance-id $i --scripts "echo '$(cat /home/{USERNAME}/.ssh/id_rsa.pub)' >> /home/{USERNAME}/.ssh/authorized_keys"
done

Last updated