Verwalten von Administratoren, SSH und Überprüfen oder Reparieren von Datenträgern auf Linux-VMs mit der VMAccess-Erweiterung und der Azure CLIManage administrative users, SSH, and check or repair disks on Linux VMs using the VMAccess Extension with the Azure CLI

ÜbersichtOverview

Der Datenträger auf Ihrer Linux-VM zeigt Fehler an.The disk on your Linux VM is showing errors. Aus irgendeinem Grund haben Sie das Stammkennwort für Ihre Linux-VM zurückgesetzt oder Ihren privaten SSH-Schlüssel versehentlich gelöscht.You somehow reset the root password for your Linux VM or accidentally deleted your SSH private key. Wenn dies früher zu Rechenzentrumszeiten geschah, mussten Sie dorthin fahren und den KVM öffnen, um an die Serverkonsole zu gelangen.If that happened back in the days of the datacenter, you would need to drive there and then open the KVM to get at the server console. Stellen Sie sich die Azure-VMAccess-Erweiterung als diesen KVM-Switch vor, mit dem Sie Zugriff auf die Konsole haben, um den Zugriff auf Linux zurückzusetzen oder Wartung auf Datenträgerebene durchzuführen.Think of the Azure VMAccess extension as that KVM switch that allows you to access the console to reset access to Linux or perform disk level maintenance.

In diesem Artikel erfahren Sie, wie Sie mithilfe der Azure VMAccess-Erweiterung einen Datenträger überprüfen oder reparieren, den Benutzerzugriff zurücksetzen, Administratorkonten verwalten oder die SSH-Konfiguration unter Linux aktualisieren, wenn die virtuellen Computer als virtuelle Azure Resource Manager ausgeführt werden.This article shows you how to use the Azure VMAccess Extension to check or repair a disk, reset user access, manage administrative user accounts, or update the SSH configuration on Linux when they are running as Azure Resource Manager virtual machines. Wenn Sie klassisch bereitgestellte virtuelle Computer verwalten möchten, können Sie die Anweisungen in der Dokumentation zu klassisch bereitgestellten virtuellen Computern befolgen.If you need to manage Classic virtual machines - you can follow the instructions found in the classic VM documentation.

Hinweis

Wenn Sie die VMAccess-Erweiterung verwenden, um das Kennwort Ihres virtuellen Computers nach der Installation der AAD-Anmeldeerweiterung zurückzusetzen, müssen Sie die AAD-Anmeldeerweiterung erneut ausführen, um die AAD-Anmeldung für Ihren Computer erneut zu aktivieren.If you use the VMAccess Extension to reset the password of your VM after installing the AAD Login Extension you will need to rerun the AAD Login Extension to re-enable AAD Login for your machine.

VoraussetzungenPrerequisites

BetriebssystemOperating system

Die VMAccess-Erweiterung kann für folgende Linux-Distributionen ausgeführt werden:The VM Access extension can be run against these Linux distributions:

DistributionDistribution VersionVersion
UbuntuUbuntu 16.04 LTS, 14.04 LTS und 12.04 LTS16.04 LTS, 14.04 LTS and 12.04 LTS
DebianDebian Debian 7.9+, 8.2+Debian 7.9+, 8.2+
Red HatRed Hat RHEL 6.7+, 7.1+RHEL 6.7+, 7.1+
Oracle LinuxOracle Linux 6.4+, 7.0+6.4+, 7.0+
SuseSuse 11 und 1211 and 12
openSUSEOpenSuse openSUSE Leap 42.2+openSUSE Leap 42.2+
CentOSCentOS CentOS 6.3+, 7.0+CentOS 6.3+, 7.0+
CoreOSCoreOS 494.4.0+494.4.0+

Verschiedene Verwendungsmöglichkeiten für die VMAccess-ErweiterungWays to use the VMAccess Extension

Es gibt zwei Möglichkeiten, die VMAccess-Erweiterung auf Ihren virtuellen Linux-Computern zu verwenden:There are two ways that you can use the VMAccess Extension on your Linux VMs:

In den folgenden Beispielen werden Befehle vom Typ az vm user verwendet.The following examples use az vm user commands. Zum Ausführen dieser Schritte muss die neueste Version der Azure CLI installiert sein, und Sie müssen mithilfe von az login bei einem Azure-Konto angemeldet sein.To perform these steps, you need the latest Azure CLI installed and logged in to an Azure account using az login.

Aktualisieren eines SSH-SchlüsselsUpdate SSH key

Das folgende Beispiel aktualisiert den SSH-Schlüssel für den Benutzer azureuser auf dem virtuellen Computer myVM:The following example updates the SSH key for the user azureuser on the VM named myVM:

az vm user update \
  --resource-group myResourceGroup \
  --name myVM \
  --username azureuser \
  --ssh-key-value ~/.ssh/id_rsa.pub

HINWEIS: Der az vm user update-Befehl fügt den Text des neuen öffentlichen Schlüssels der ~/.ssh/authorized_keys-Datei für den Administratorbenutzer auf dem virtuellen Computer an.NOTE: The az vm user update command appends the new public key text to the ~/.ssh/authorized_keys file for the admin user on the VM. Vorhandene SSH-Schlüssel werden dadurch weder ersetzt noch entfernt.This does not replace or remove any existing SSH keys. Vorherige, zur Bereitstellungszeit festgelegte Schlüssel oder nachfolgende Updates über die VMAccess-Erweiterung werden dadurch nicht entfernt.This will not remove prior keys set at deployment time or subsequent updates via the VMAccess Extension.

Kennwort zurücksetzenReset password

Das folgende Beispiel setzt das Kennwort für den Benutzer azureuser auf dem virtuellen Computer myVM zurück:The following example resets the password for the user azureuser on the VM named myVM:

az vm user update \
  --resource-group myResourceGroup \
  --name myVM \
  --username azureuser \
  --password myNewPassword

Neustarten von SSHRestart SSH

Im folgenden Beispiel wird auf einem virtuellen Computer namens myVM der SSH-Daemon neu gestartet und die SSH-Konfiguration auf Standardwerte zurückgesetzt:The following example restarts the SSH daemon and resets the SSH configuration to default values on a VM named myVM:

az vm user reset-ssh \
  --resource-group myResourceGroup \
  --name myVM

Erstellen eines Administrators/sudo-BenutzersCreate an administrative/sudo user

Im folgenden Beispiel wird ein Benutzer mit dem Namen myNewUser mit sudo-Berechtigungen erstellt.The following example creates a user named myNewUser with sudo permissions. Das Konto verwendet einen SSH-Schlüssel für die Authentifizierung auf der VM mit dem Namen myVM.The account uses an SSH key for authentication on the VM named myVM. Diese Methode wurde dafür konzipiert, Ihnen Zugriff auf eine VM zu verschaffen für den Fall, dass die aktuellen Anmeldeinformationen verloren gehen oder Sie diese vergessen haben.This method is designed to help you regain access to a VM in the event that current credentials are lost or forgotten. Als bewährte Methode sollten Konten mit sudo-Berechtigungen beschränkt werden.As a best practice, accounts with sudo permissions should be limited.

az vm user update \
  --resource-group myResourceGroup \
  --name myVM \
  --username myNewUser \
  --ssh-key-value ~/.ssh/id_rsa.pub

Löschen eines BenutzersDelete a user

Das folgende Beispiel löscht einen Benutzer namens myNewUser vom virtuellen Computer myVM:The following example deletes a user named myNewUser on the VM named myVM:

az vm user delete \
  --resource-group myResourceGroup \
  --name myVM \
  --username myNewUser

Verwenden von JSON-Dateien und der VMAccess-ErweiterungUse JSON files and the VMAccess Extension

Die folgenden Beispiele verwenden JSON-Rohdatendateien.The following examples use raw JSON files. Verwenden Sie az vm extension set, um Ihre JSON-Dateien aufzurufen.Use az vm extension set to then call your JSON files. Diese JSON-Dateien können auch aus Azure-Vorlagen heraus aufgerufen werden.These JSON files can also be called from Azure templates.

Zurücksetzen des BenutzerzugriffsReset user access

Wenn Sie nicht mehr auf das Stammverzeichnis Ihres virtuellen Linux-Computers zugreifen können, können Sie ein VMAccess-Skript starten, um den SSH-Schlüssel oder das Kennwort eines Benutzers zu aktualisieren.If you have lost access to root on your Linux VM, you can launch a VMAccess script to update a user's SSH key or password.

Um den öffentlichen SSH-Schlüssel eines Benutzers zu aktualisieren, erstellen Sie eine Datei namens update_ssh_key.json und fügen ihr Einstellungen im folgenden Format hinzu.To update the SSH public key of a user, create a file named update_ssh_key.json and add settings in the following format. Geben Sie für die Parameter username und ssh_key Ihre eigenen Werte an:Substitute your own values for the username and ssh_key parameters:

{
  "username":"azureuser",
  "ssh_key":"ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQCZ3S7gGp3rcbKmG2Y4vGZFMuMZCwoUzZNGxxxxxx2XV2x9FfAhy8iGD+lF8UdjFX3t5ebMm6BnnMh8fHwkTRdOt3LDQq8o8ElTBrZaKPxZN2thMZnODs5Hlemb2UX0oRIGRcvWqsd4oJmxsXa/Si98Wa6RHWbc9QZhw80KAcOVhmndZAZAGR+Wq6yslNo5TMOr1/ZyQAook5C4FtcSGn3Y+WczaoGWIxG4ZaWk128g79VIeJcIQqOjPodHvQAhll7qDlItVvBfMOben3GyhYTm7k4YwlEdkONm4yV/UIW0la1rmyztSBQIm9sZmSq44XXgjVmDHNF8UfCZ1ToE4r2SdwTmZv00T2i5faeYnHzxiLPA3Enub7xxxxxxwFArnqad7MO1SY1kLemhX9eFjLWN4mJe56Fu4NiWJkR9APSZQrYeKaqru4KUC68QpVasNJHbuxPSf/PcjF3cjO1+X+4x6L1H5HTPuqUkyZGgDO4ynUHbko4dhlanALcriF7tIfQR9i2r2xOyv5gxJEW/zztGqWma/d4rBoPjnf6tO7rLFHXMt/DVTkAfn5wxxtLDwkn5FMyvThRmex3BDf0gujoI1y6cOWLe9Y5geNX0oj+MXg/W0cXAtzSFocstV1PoVqy883hNoeQZ3mIGB3Q0rIUm5d9MA2bMMt31m1g3Sin6EQ== azureuser@myVM"
}

Führen Sie das VMAccess-Skript aus mit:Execute the VMAccess script with:

az vm extension set \
  --resource-group myResourceGroup \
  --vm-name myVM \
  --name VMAccessForLinux \
  --publisher Microsoft.OSTCExtensions \
  --version 1.4 \
  --protected-settings update_ssh_key.json

Um ein Benutzerkennwort zurückzusetzen, erstellen Sie eine Datei namens reset_user_password.json und fügen ihr Einstellungen im folgenden Format hinzu.To reset a user password, create a file named reset_user_password.json and add settings in the following format. Geben Sie für die Parameter username und password Ihre eigenen Werte an:Substitute your own values for the username and password parameters:

{
  "username":"azureuser",
  "password":"myNewPassword" 
}

Führen Sie das VMAccess-Skript aus mit:Execute the VMAccess script with:

az vm extension set \
  --resource-group myResourceGroup \
  --vm-name myVM \
  --name VMAccessForLinux \
  --publisher Microsoft.OSTCExtensions \
  --version 1.4 \
  --protected-settings reset_user_password.json

Neustarten von SSHRestart SSH

Erstellen Sie zum Neustarten des SSH-Daemons und zum Wiederherstellen der Standardwerte der SSH-Konfiguration eine Datei namens reset_sshd.json.To restart the SSH daemon and reset the SSH configuration to default values, create a file named reset_sshd.json. Fügen Sie folgenden Inhalt hinzu:Add the following content:

{
  "reset_ssh": true
}

Führen Sie das VMAccess-Skript aus mit:Execute the VMAccess script with:

az vm extension set \
  --resource-group myResourceGroup \
  --vm-name myVM \
  --name VMAccessForLinux \
  --publisher Microsoft.OSTCExtensions \
  --version 1.4 \
  --protected-settings reset_sshd.json

Verwalten von AdministratorenManage administrative users

Erstellen Sie zur Erstellung eines Benutzers mit sudo-Berechtigungen, der einen SSH-Schlüssel für die Authentifizierung verwendet, eine Datei namens create_new_user.json, und fügen Sie Einstellungen im folgenden Format hinzu.To create a user with sudo permissions that uses an SSH key for authentication, create a file named create_new_user.json and add settings in the following format. Geben Sie für die Parameter username und ssh_key Ihre eigenen Werte an.Substitute your own values for the username and ssh_key parameters. Diese Methode wurde dafür konzipiert, Ihnen Zugriff auf eine VM zu verschaffen für den Fall, dass die aktuellen Anmeldeinformationen verloren gehen oder Sie diese vergessen haben.This method is designed to help you regain access to a VM in the event that current credentials are lost or forgotten. Als bewährte Methode sollten Konten mit sudo-Berechtigungen beschränkt werden.As a best practice, accounts with sudo permissions should be limited.

{
  "username":"myNewUser",
  "ssh_key":"ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQCZ3S7gGp3rcbKmG2Y4vGZFMuMZCwoUzZNG1vHY7P2XV2x9FfAhy8iGD+lF8UdjFX3t5ebMm6BnnMh8fHwkTRdOt3LDQq8o8ElTBrZaKPxZN2thMZnODs5Hlemb2UX0oRIGRcvWqsd4oJmxsXa/Si98Wa6RHWbc9QZhw80KAcOVhmndZAZAGR+Wq6yslNo5TMOr1/ZyQAook5C4FtcSGn3Y+WczaoGWIxG4ZaWk128g79VIeJcIQqOjPodHvQAhll7qDlItVvBfMOben3GyhYTm7k4YwlEdkONm4yV/UIW0la1rmyztSBQIm9sZmSq44XXgjVmDHNF8UfCZ1ToE4r2SdwTmZv00T2i5faeYnHzxiLPA3Enub7iUo5IdwFArnqad7MO1SY1kLemhX9eFjLWN4mJe56Fu4NiWJkR9APSZQrYeKaqru4KUC68QpVasNJHbuxPSf/PcjF3cjO1+X+4x6L1H5HTPuqUkyZGgDO4ynUHbko4dhlanALcriF7tIfQR9i2r2xOyv5gxJEW/zztGqWma/d4rBoPjnf6tO7rLFHXMt/DVTkAfn5woYtLDwkn5FMyvThRmex3BDf0gujoI1y6cOWLe9Y5geNX0oj+MXg/W0cXAtzSFocstV1PoVqy883hNoeQZ3mIGB3Q0rIUm5d9MA2bMMt31m1g3Sin6EQ== myNewUser@myVM",
  "password":"myNewUserPassword"
}

Führen Sie das VMAccess-Skript aus mit:Execute the VMAccess script with:

az vm extension set \
  --resource-group myResourceGroup \
  --vm-name myVM \
  --name VMAccessForLinux \
  --publisher Microsoft.OSTCExtensions \
  --version 1.4 \
  --protected-settings create_new_user.json

Erstellen Sie zum Löschen eines Benutzers eine Datei namens delete_user.json, und fügen Sie folgenden Inhalt hinzu.To delete a user, create a file named delete_user.json and add the following content. Geben Sie für den Parameter remove_user Ihren eigenen Wert an:Substitute your own value for the remove_user parameter:

{
  "remove_user":"myNewUser"
}

Führen Sie das VMAccess-Skript aus mit:Execute the VMAccess script with:

az vm extension set \
  --resource-group myResourceGroup \
  --vm-name myVM \
  --name VMAccessForLinux \
  --publisher Microsoft.OSTCExtensions \
  --version 1.4 \
  --protected-settings delete_user.json

Überprüfen oder Reparieren des DatenträgersCheck or repair the disk

Mithilfe von „VMAccess“ können Sie auch einen Datenträger überprüfen und reparieren, den Sie dem virtuellen Linux-Computer hinzugefügt haben.Using VMAccess you can also check and repair a disk that you added to the Linux VM.

Erstellen Sie zum Überprüfen und anschließenden Reparieren des Datenträgers eine Datei namens disk_check_repair.json, und fügen Sie ihr Einstellungen im folgenden Format hinzu.To check and then repair the disk, create a file named disk_check_repair.json and add settings in the following format. Geben Sie für den Namen von repair_disk Ihren eigenen Wert an:Substitute your own value for the name of repair_disk:

{
  "check_disk": "true",
  "repair_disk": "true, mydiskname"
}

Führen Sie das VMAccess-Skript aus mit:Execute the VMAccess script with:

az vm extension set \
  --resource-group myResourceGroup \
  --vm-name myVM \
  --name VMAccessForLinux \
  --publisher Microsoft.OSTCExtensions \
  --version 1.4 \
  --protected-settings disk_check_repair.json

Problembehandlung und SupportTroubleshoot and support

ProblembehandlungTroubleshoot

Daten zum Status von Erweiterungsbereitstellungen können über das Azure-Portal und mithilfe der Azure-Befehlszeilenschnittstelle abgerufen werden.Data about the state of extension deployments can be retrieved from the Azure portal, and by using the Azure CLI. Führen Sie über die Azure-Befehlszeilenschnittstelle den folgenden Befehl aus, um den Bereitstellungsstatus von Erweiterungen für einen bestimmten virtuellen Computer anzuzeigen.To see the deployment state of extensions for a given VM, run the following command using the Azure CLI.

az vm extension list --resource-group myResourceGroup --vm-name myVM -o table

SupportSupport

Sollten Sie beim Lesen dieses Artikels feststellen, dass Sie weitere Hilfe benötigen, können Sie sich über das MSDN Azure-Forum oder über das Stack Overflow-Forum mit Azure-Experten in Verbindung setzen.If you need more help at any point in this article, you can contact the Azure experts on the MSDN Azure and Stack Overflow forums. Alternativ dazu haben Sie die Möglichkeit, einen Azure-Supportfall zu erstellen.Alternatively, you can file an Azure support incident. Rufen Sie die Azure-Support-Website auf, und wählen Sie „Support erhalten“ aus.Go to the Azure support site and select Get support. Informationen zur Nutzung von Azure-Support finden Sie unter Microsoft Azure-Support-FAQ.For information about using Azure Support, read the Microsoft Azure support FAQ.