Återställa ett lokalt Linux-lösenord på virtuella Azure-datorer

Den här artikeln innehåller tre metoder för att återställa lokala lösenord för virtuella Linux-datorer (VM). 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 få åtkomst till den virtuella datorn igen.

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

Du kan återställa lösenordet utan att koppla 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 Portal.

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

    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 Portal.

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

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

Du kan använda seriekonsolenadmin 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ösenordsautentisering.

    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 är inställt på PasswordAuthenticationnoanvä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.

Obs!

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 virtuell reparationsdator 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.

Obs!

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

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

    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ösenordsautentisering.

    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 är inställt på PasswordAuthenticationnoanvä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. Återmontera 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 för att få hjälp

Om du har frågor eller behöver hjälp skapar du en supportförfrågan eller frågar Azure community support. Du kan också skicka produktfeedback till Azure-feedbackcommunityn.