Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Gilt für: ✔️ Linux-VMs
Dieser Artikel enthält Lösungen für ein Problem, bei dem eine Verbindung mit einem virtuellen Linux-Computer (VM) über Secure Shell (SSH) fehlschlägt, da das Verzeichnis /var/empty/sshd in RHEL, das Verzeichnis "/var/lib/empty " in SUSE oder das Verzeichnis "/var/run/sshd " in Ubuntu nicht vorhanden ist oder nicht dem Stammbenutzer gehört, oder es ist beschreibbar oder weltschreibbar.
Von Bedeutung
Neu! Probieren Sie VM-Unterstützung aus, um die wichtigsten Probleme zu beheben. Es wird empfohlen, vm assist for Windows or VM assist for Linux auszuführen. Diese skriptbasierten Diagnosetools helfen Ihnen, häufige Probleme zu identifizieren, die sich auf den Azure VM-Gast-Agent und die allgemeine VM-Integrität auswirken.
Wenn Leistungsprobleme auf virtuellen Computern auftreten, führen Sie diese Tools zuerst aus, bevor Sie sich an den Microsoft-Support wenden.
Symptome
Wenn Sie eine Verbindung mit einem virtuellen Linux-Computer (VM) über SSH herstellen, schlägt die Verbindung fehl. Je nach Linux-Verteilung erhalten Sie möglicherweise die folgende Fehlermeldung über das betroffene Verzeichnis.
sudo tail /var/log/messages
sshd: /var/empty/sshd must be owned by root and not group or world-writable.
Ursache
Dieses Problem kann auftreten, wenn das betroffene Verzeichnis nicht dem Stammbenutzer gehört, oder wenn es beschreibbar oder weltschreibbar ist.
Verwenden Sie eine der folgenden Lösungen, um dieses Problem zu beheben:
- Lösung 1: Reparieren Sie den virtuellen Computer online.
- Lösung 2: Reparieren Sie den virtuellen Computer offline.
Lösung 1: Reparieren der VM online
Im Folgenden sind zwei Methoden zum Offlinereparieren des virtuellen Computers aufgeführt:
Verwenden der seriellen Konsole
Stellen Sie über Azure-Portal eine Verbindung mit der seriellen Konsole der VM her.
Melden Sie sich mit einem lokalen Administratorkonto und den entsprechenden Anmeldeinformationen oder kennwort bei der VM an.
Führen Sie die folgenden Befehle aus, um das Berechtigungs- und Eigentumsproblem zu auszulösen:
Verwenden der Erweiterung "Befehl ausführen"
Hinweis
Diese Methode basiert auf dem Azure Linux VM Agent (waagent). Stellen Sie daher sicher, dass der Agent auf dem virtuellen Computer installiert ist und dass der Dienst ausgeführt wird.
Öffnen Sie im Azure-Portal das Fenster "Eigenschaften" der VM, um den Agentstatus zu überprüfen. Wenn der Agent aktiviert ist und über den Status "Bereit " verfügt, führen Sie die folgenden Schritte aus, um die Berechtigung zu ändern:
Wechseln Sie zum Azure-Portal, suchen Sie Ihre VM-Einstellungen, und wählen Sie dann "Befehl ausführen" unter "Vorgänge" aus.
Führen Sie das folgende Shellskript aus, indem Sie RunShellScript
- Nach Abschluss der Skriptausführung zeigt das Ausgabekonsolenfenster eine Meldung "Erfolgreich aktivieren" an.
Wenn Sie über SSH eine Verbindung mit dem virtuellen Computer herstellen können und die Details der Ausführung des Run-Command-Skripts analysieren möchten, überprüfen Sie die handler.log Datei im Verzeichnis "/var/log/azure/run-command" .
Lösung 2: Reparieren des virtuellen Computers offline
Hinweis
- Verwenden Sie diese Auflösung, wenn der serielle Konsolenzugriff auf den virtuellen Computer nicht verfügbar ist und der Waagent nicht bereit ist.
- In Ubuntu wird das Verzeichnis "/var/run/sshd " im Arbeitsspeicher ausgeführt. Durch den Neustart des virtuellen Computers wird auch das Problem behoben. Daher ist die Offline-Problembehandlung in Ubuntu-VMs nicht erforderlich.
Im Folgenden sind zwei Methoden zum Offlinereparieren des virtuellen Computers aufgeführt:
Verwenden der az vm-Reparatur
Der az vm repairTeil der Vm-Repair-Erweiterung für die Azure CLI wird unter Reparieren einer Linux-VM mithilfe der Reparaturbefehle des virtuellen Azure-Computers beschrieben.
Führen Sie die folgenden Schritte aus, um den manuellen Offlineprozess zu automatisieren:
Hinweis
Ersetzen Sie in den folgenden Schritten die Werte , $RGNAME, , $VMNAME$USERNAME$PASSWORD, und repairdiskcopy werte entsprechend.
Verwenden Sie den Befehl zum Erstellen der Az-VM-Reparatur, um eine Reparatur-VM zu erstellen. Die Reparatur-VM verfügt über eine Kopie des Betriebssystemdatenträgers für den problematischen virtuellen Computer, der angefügt ist.
az vm repair create --verbose -g $RGNAME -n $VMNAME --repair-username $USERNAME --repair-password $PASSWORD --copy-disk-name repairdiskcopyMelden Sie sich bei der Reparatur-VM an. Bereitstellen und Chroot an das Dateisystem der angefügten Kopie des Betriebssystemdatenträgers. Folgen Sie den detaillierten Chroot-Anweisungen.
Führen Sie die folgenden Befehle aus, um die Berechtigungs- und Besitzprobleme zu beheben:
Nachdem die Änderungen angewendet wurden, führen Sie den folgenden
az vm repair restoreBefehl aus, um einen automatischen Austausch des Betriebssystemdatenträgers mit der ursprünglichen VM auszuführen.az vm repair restore --verbose -g $RGNAME -n $VMNAME
Verwenden der manuellen Methode
Wenn sowohl die serielle Konsole als az vm repair auch der Ansatz nicht für Sie gelten oder fehlschlagen, muss die Reparatur manuell ausgeführt werden. Führen Sie die folgenden Schritte aus, um den Betriebssystemdatenträger manuell an eine Wiederherstellungs-VM anzufügen und den Betriebssystemdatenträger wieder an die ursprüngliche VM zu tauschen:
- Fügen Sie den Betriebssystemdatenträger mithilfe des Azure-Portal an eine Wiederherstellungs-VM an.
- Fügen Sie den Betriebssystemdatenträger mithilfe der Azure CLI an eine Wiederherstellungs-VM an.
Sobald der Betriebssystemdatenträger erfolgreich an die Wiederherstellungs-VM angeschlossen ist, folgen Sie den detaillierten Chroot-Anweisungen, um die Dateisysteme des angeschlossenen Betriebssystemlaufwerks einzuhängen und zu chrooten. Befolgen Sie dann Schritt 3 im Abschnitt "Az vm Repair ", um die Berechtigungs- und Besitzprobleme zu beheben.
Kontaktieren Sie uns für Hilfe
Wenn Sie Fragen haben, können Sie den Azure-Communitysupport stellen. Sie können auch Produktfeedback an die Azure Feedback Community senden.