Zurücksetzen des lokalen Linux-Kennworts auf Azure-VMs
In diesem Artikel werden mehrere Methoden zum Zurücksetzen des lokalen Kennworts eines virtuellen Linux-Computers (VM) vorgestellt. Wenn das Benutzerkonto abgelaufen ist oder Sie ein neues Konto erstellen möchten, können Sie die folgenden Methoden nutzen, um ein neues lokales Administratorkonto zu erstellen und erneut Zugriff auf den virtuellen Computer zu erhalten.
Zurücksetzen des Kennworts mithilfe des Azure Linux-Agents
Sie können das Kennwort zurücksetzen, ohne den Betriebssystemdatenträger an eine andere VM anzuhängen. Diese Methode erfordert, dass der Azure Linux-Agent auf der betroffenen VM installiert wird.
Stellen Sie sicher, dass der Dienst „Azure Linux Agent“ (waagent) auf der betroffenen VM ausgeführt wird.
Richten Sie die Umgebungsvariablen ein und verwenden Sie die Azure CLI oder Azure Cloud Shell zum Zurücksetzen des Kennworts:
AZ_RESOURCE_GROUP="YourResourceGroupName" AZ_VM_NAME="VMname" AZ_ADMIN_USER="adminName" AZ_MSADMIN_PASS="newPassword" az vm user update -u $AZ_ADMIN_USER -p $AZ_MSADMIN_PASS -g $AZ_RESOURCE_GROUP -n $AZ_VM_NAMEVersuchen Sie, auf den virtuellen Computer zuzugreifen.
Informationen zum Aktualisieren des SSH-Schlüssels finden Sie unter Verwalten von Administratoren, SSH mithilfe der VMAccess-Erweiterung mit der Azure CLI.
Sie können das Kennwort oder den SSH-Schlüssel auch zurücksetzen, indem Sie die Funktion Kennwort zurücksetzen im Azure-Portal verwenden.
Setzen Sie das Kennwort mithilfe einer Wiederherstellungs-VM zurück
Diese Methode wurde mit den unterstützten Linux-Distributionen und -Versionen getestet.
Hinweis
Wenn bei Ihnen Probleme auftreten, die eine virtuelle Azure-Netzwerk-Appliance betreffen, gilt diese Methode nicht für Ihre Situation. Stattdessen müssen Sie sich an den Anbieter der virtuellen Netzwerk-Appliance wenden, um Anweisungen zum sicheren Zurücksetzen des Kennworts zu erhalten.
Erstellen Sie eine Momentaufnahme des Betriebssystemdatenträgers des betroffenen virtuellen Computers als Sicherung. Weitere Informationen finden Sie unter Erstellen einer Momentaufnahme eines Datenträgers.
Führen Sie die folgenden az vm repair create-Befehle aus. Dadurch wird eine Kopie des Betriebssystemdatenträgers erstellt und der Datenträger automatisch an eine Wiederherstellungs-VM angehängt.
AZ_RESOURCE_GROUP="YourResourceGroupName" AZ_VM_NAME="VMname" AZ_ADMIN_USER="userName" AZ_MSADMIN_PASS="newPassword" az vm repair create -g $AZ_RESOURCE_GROUP -n $AZ_VM_NAME --repair-username $AZ_ADMIN_USER --repair-password "$AZ_MSADMIN_PASS" --verboseMelden Sie sich bei der Wiederherstellungs-VM an. Mounten Sie das Root-Dateisystem auf dem Datenträger auf /recovery und setzen Sie das Kennwortfeld auf einen leeren Zustand.
# You have to run the following commands as the root user. sudo -i # Identify the device name of the data disk that's attached to the VM. lsblk # Mount the OS disk that's attached as a data disk to the recovery VM. mkdir /recovery mount /dev/sdc1 /recovery # [OPTIONAL] If the output from lsblk shows that the root file system is located on a logical volume, then you have to mount that logical volume instead. mount /dev/rootvg/rootlv /recovery # Make sure that password authentication is enabled on the OpenSSH server if you will try to log in to the server by using SSH and password authentication. egrep "^PasswordAuthentication" /recovery/etc/ssh/sshd_config # Enter the user name. It can be "root" or the name of the admin user. USER_NAME="root" # Make a backup of the current /recovery/etc/shadow file. cp -av /recovery/etc/shadow /recovery/etc/shadow.$( date '+%Y.%m.%d_%H.%M.%S' ) # Remove the root password from the /recovery/etc/shadow file. sed -r -i.azbackup "s/${USER_NAME}\:[^\:]*/${USER_NAME}\:/g" /recovery/etc/shadow # Compare the differences between the password files. diff /recovery/etc/shadow /recovery/etc/shadow.azbackup # Make sure that you sync any pending I/O operations on the file system. sync # Unmount the root file system before you remove the disk. umount /recoveryMounten Sie die Betriebssystemfestplatte erneut auf der betroffenen VM, indem Sie die Betriebssystemfestplatten austauschen:
az vm repair restore -g $AZ_RESOURCE_GROUP -n $AZ_VM_NAME --verboseMelden Sie sich über die serielle Konsole oder mithilfe von SSH und dem Benutzerkonto, für das das Kennwortfeld auf einen leeren Zustand zurückgesetzt wurde, beim Server an. Wenn das System nach dem Benutzerkennwort fragt, drücken Sie die Eingabetaste, um sich beim System anzumelden. Wenn die serielle Konsole auf der VM nicht aktiviert ist, müssen Sie ihr ein Speicherkonto zuordnen, um die Startdiagnose zu aktivieren.
Verwenden Sie den
passwd-Befehl, um zwischenzeitlich ein neues Kennwort für das Benutzerkonto einzurichten.Greifen Sie über SSH auf den Server zu und geben Sie das neue Kennwort ein, das Sie über die serielle Konsole eingerichtet haben.