Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Gäller för: ✔️ Virtuella Linux-datorer
Sammanfattning
Den här artikeln innehåller lösningar på ett problem där det inte går att ansluta till en virtuell Linux-dator (VM) via Secure Shell (SSH) eftersom katalogen /var/empty/sshd i RHEL, katalogen /var/lib/empty i SUSE eller katalogen /var/run/sshd i Ubuntu inte finns eller att den inte ägs av rotanvändaren eller är grupp-skrivbar eller världsskrivningsbar.
Viktigt!
Nytt! Prova VM-hjälpen för att lösa de vanligaste problemen. Vi rekommenderar att du kör hjälpen VM för Windows eller VM-hjälp för Linux. De här skriptbaserade diagnostikverktygen hjälper dig att identifiera vanliga problem som påverkar Azure VM-gästagent och övergripande hälsotillstånd för virtuella datorer.
Om du har prestandaproblem på virtuella datorer kör du de här verktygen först innan du kontaktar Microsoft Support.
Symptom
När du ansluter till en virtuell Linux-dator (VM) via SSH misslyckas anslutningen. Du kan få följande felmeddelande om den berörda katalogen, beroende på din Linux-distribution.
sudo tail /var/log/messages
sshd: /var/empty/sshd must be owned by root and not group or world-writable.
Orsak
Det här problemet kan uppstå om den berörda katalogen inte ägs av rootanvändaren eller om den är gruppskrivbar eller världsskrivbar.
Lös problemet genom att använda någon av följande lösningar:
Lösning 1: Reparera den virtuella datorn online
Här är två metoder för att reparera den virtuella datorn offline:
Använda seriekonsolen
Anslut till den virtuella datorns seriekonsol från Azure portalen.
Logga in på den virtuella datorn med hjälp av ett lokalt administrativt konto och motsvarande autentiseringsuppgifter eller lösenord.
Kör följande kommandon för att lösa problemet med behörigheter eller ägande:
Använda tillägget "Kör kommando"
Obs!
Den här metoden förlitar sig på Azure Linux VM Agent (waagent). Kontrollera därför att agenten är installerad på den virtuella datorn och att dess tjänst körs.
I Azure-portalen öppnar du fönstret Egenskaper för den virtuella datorn för att kontrollera agentstatusen. Om agenten är aktiverad och har statusen Klar följer du dessa steg för att ändra behörigheten:
Gå till Azure-portalen, leta upp inställningarna för den virtuella datorn och välj sedan Run Command under Operations.
Kör följande gränssnittsskript genom att välja RunShellScript>Run:
- När skriptkörningen är klar kommer utdatakonsolfönstret att visa meddelandet "Aktivering lyckades".
Om du kan ansluta till den virtuella datorn via SSH och vill analysera information om körningen av Körningskommandoskriptet undersöker du filen handler.log i katalogen /var/log/azure/run-command .
Lösning 2: Reparera den virtuella datorn offline
Obs!
- Använd den här lösningen om den virtuella datorns seriekonsolåtkomst inte är tillgänglig och waagenten inte är redo.
- På Ubuntu körs katalogen /var/run/sshd direkt i minnet. Om du startar om den virtuella datorn åtgärdas också problemet. Därför är offlinefelsökning på virtuella Ubuntu-datorer inte nödvändigt.
Här är två metoder för att reparera den virtuella datorn offline:
- Använda az vm repair
- Använd den manuella metoden.
Använd az vm repair
az vm repair, en del av vm-repair-tillägget för Azure CLI, beskrivs i Reparera en Linux-VM genom att använda kommandona för reparation av Azure Virtual Machine.
Följ dessa steg för att automatisera den manuella offlineprocessen:
Obs!
I följande steg ersätter du $RGNAMEvärdena , $VMNAME, $USERNAME, $PASSWORDoch repairdiskcopy därefter.
Använd kommandot az vm repair create för att skapa en virtuell reparationsdator. Den virtuella reparationsdatorn har en kopia av OS-disken för den problematiska virtuella datorn.
az vm repair create --verbose -g $RGNAME -n $VMNAME --repair-username $USERNAME --repair-password $PASSWORD --copy-disk-name repairdiskcopyLogga in på den virtuella reparationsdatorn. Montera och chroota till filsystemet på OS-diskens anslutna kopia. Följ de detaljerade chroot-instruktionerna.
Kör följande kommandon för att lösa problem med behörighet och ägarskap:
När ändringarna har tillämpats kör du följande
az vm repair restorekommando för att utföra ett automatiskt os-diskbyte med den ursprungliga virtuella datorn.az vm repair restore --verbose -g $RGNAME -n $VMNAME
Använd den manuella metoden
Om både seriekonsolen och az vm repair metoden inte gäller för dig eller misslyckas måste reparationen utföras manuellt. Följ stegen nedan för att manuellt koppla OS-disken till en återställnings-VM och växla tillbaka OS-disken till den ursprungliga virtuella datorn:
- Fäst OS-disken till en återställningsmaskin med hjälp av Azure-portalen.
- Attach OS-disken till en virtuell återställningsdator med hjälp av Azure CLI.
När OS-disken har anslutits till den virtuella återställningsdatorn följer du de detaljerade chroot-instruktionerna för att montera och chroot till filsystemen på den anslutna OS-disken. Följ sedan steg 3 i avsnittet Använd az vm repair för att lösa problem med behörighet och ägarskap.