Dela via


Återställa lokala Linux-lösenord för virtuella Azure-datorer

Gäller för: ✔️ Virtuella Linux-datorer

Den här artikeln innehåller tre metoder för att återställa lokala lösenord för virtuella Linux-datorer . Om användarkontot har upphört att gälla eller om du vill skapa ett nytt konto kan du använda följande metoder för att skapa ett nytt lokalt administratörskonto och återfå åtkomsten till den virtuella datorn.

Återställ lösenordet med hjälp av Azure Linux-agenten

Du kan återställa lösenordet utan att ansluta OS-disken till en annan virtuell dator. Den här metoden kräver att Azure Linux-agenten installeras på den berörda virtuella datorn.

  1. Kontrollera att tjänsten Azure Linux Agent (waagent) körs på den berörda virtuella datorn och är i ett redo tillstånd i Azure-portalen.

  2. Konfigurera miljövariablerna och använd Azure CLI eller Azure Cloud Shell för att återställa lösenordet:

    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_NAME
    
  3. Försök att komma åt den virtuella datorn.

Information om hur du uppdaterar SSH-nyckeln finns i Hantera administrativa användare, SSH med hjälp av VMAccess-tillägget med Azure CLI.

Du kan också återställa lösenordet eller SSH-nyckeln med hjälp av funktionen Återställ lösenord i Azure-portalen.

Mer information finns i vmaccess-tillägget för Linux.

Återställa lösenordet med hjälp av seriekonsolen med enanvändarläge

Du kan använda seriekonsolen admin user för att återställa kontot eller root via enanvändarläge för åtkomst till virtuella datorer.

  1. Följ processen för enanvändarläge för att återställa eller lägga till ett lösenord.

  2. Kontrollera att lösenordsautentisering är aktiverat på OpenSSH-servern om du försöker logga in på servern med hjälp av SSH- och lösenordsautentiseringen.

    1. Kontrollera om värdet PasswordAuthentitcation är inställt på eller no i /etc/ssh/sshd_config genom att yes köra följande kommando:

      egrep "^PasswordAuthentication" /etc/ssh/sshd_config
      
    2. Om värdet PasswordAuthentication är inställt på noanvänder du en textredigerare som vi eller nano för att ändra värdet till yes.

  3. Skapa ett nytt lösenord för admin user kontot eller root genom att passwd köra kommandot:

    passwd <admin_user>
    
  4. Kontrollera om SElinux är i enforcing läge i /etc/sysconfig/selinux genom att köra följande kommando:

    cat /etc/sysconfig/selinux
    
  5. Om SElinux är i enforcing läge kontrollerar du att SElinux tillåter filändringar som görs med passwd kommandot . När lösenordet har ändrats kan du köra följande kommando för att ange filsystemet på nytt för att underlätta inläsningen av ändringen.

    touch /.autorelabel
    
  6. Starta om den virtuella datorn genom att köra följande kommando:

    /usr/sbin/reboot -f
    
  7. Försök att komma åt den virtuella datorn.

Återställa lösenordet med hjälp av en virtuell reparationsdator

Den här metoden har testats med hjälp av Linux-distributioner och versioner som stöds.

Kommentar

Om du har problem som påverkar en virtuell Azure-nätverksinstallation gäller inte den här metoden för din situation. I stället måste du kontakta leverantören av den virtuella nätverksinstallationen för att få instruktioner om hur du återställer lösenord på ett säkert sätt.

Du kan köra reparationskommandona för virtuella datorer för att skapa en reparations-VM som har en kopia av den berörda virtuella datorns OS-disk ansluten. Montera sedan kopian av OS-filsystemen på den virtuella reparationsdatorn via chroot-miljön.

Kommentar

Du kan också skapa en virtuell räddningsdator manuellt med hjälp av Azure-portalen. Mer information finns i Felsöka en virtuell Linux-dator genom att ansluta OS-disken till en virtuell återställningsdator med hjälp av Azure-portalen.

  1. Kör följande az vm repair create-kommandon för att skapa en kopia av OS-disken. Sedan kopplas disken automatiskt till en virtuell återställningsdator.

    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" --verbose
    
  2. Logga in på den virtuella reparationsdatorn och felsök chroot-miljön.

  3. Kontrollera att lösenordsautentisering är aktiverat på OpenSSH-servern om du försöker logga in på servern med hjälp av SSH- och lösenordsautentiseringen.

    1. Kontrollera om värdet PasswordAuthentitcation är inställt på eller no i /etc/ssh/sshd_config genom att yes köra följande kommando:

      egrep "^PasswordAuthentication" /etc/ssh/sshd_config
      
    2. Om värdet PasswordAuthentication är inställt på noanvänder du en textredigerare som vi eller nano för att ändra värdet till yes.

  4. Skapa ett nytt lösenord för admin user kontot eller root genom att passwd köra kommandot:

    passwd <admin_user>
    
  5. Kontrollera om SElinux är i enforcing läge i /etc/sysconfig/selinux genom att köra följande kommando:

    cat /etc/sysconfig/selinux
    
  6. Om SElinux är i enforcing läge kontrollerar du att SElinux tillåter filändringar som görs med passwd kommandot . När lösenordet har ändrats kan du köra följande kommando för att ange filsystemet på nytt för att underlätta inläsningen av ändringen.

    touch /.autorelabel
    
  7. Avsluta chroot-miljön.

  8. Montera om OS-disken till den berörda virtuella datorn genom att växla OS-disken med följande kommando:

    az vm repair restore -g $AZ_RESOURCE_GROUP -n $AZ_VM_NAME --verbose
    
  9. Försök att komma åt den virtuella datorn.

Nästa steg

Kontakta oss om du behöver hjälp

Om du har frågor eller behöver hjälp skapar du en supportbegäran eller frågar Azure Community-support. Du kan också skicka produktfeedback till Azure-feedbackcommunityn.