Jak zresetować lokalne hasło systemu Linux na maszynach wirtualnych platformy Azure

Ten artykuł zawiera trzy metody resetowania haseł lokalnych maszyn wirtualnych z systemem Linux. Jeśli konto użytkownika wygasło lub chcesz utworzyć nowe konto, możesz użyć następujących metod, aby utworzyć nowe konto administratora lokalnego i odzyskać dostęp do maszyny wirtualnej.

Resetowanie hasła przy użyciu agenta systemu Azure Linux

Możesz zresetować hasło bez dołączania dysku systemu operacyjnego do innej maszyny wirtualnej. Ta metoda wymaga zainstalowania agenta platformy Azure z systemem Linux na maszynie wirtualnej, którego dotyczy problem.

  1. Upewnij się, że usługa Azure Linux Agent (waagent) jest uruchomiona na maszynie wirtualnej, na którą dotyczy problem, i jest w stanie gotowości w Azure Portal.

  2. Skonfiguruj zmienne środowiskowe i użyj interfejsu wiersza polecenia platformy Azure lub usługi Azure Cloud Shell, aby zresetować hasło:

    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. Spróbuj uzyskać dostęp do maszyny wirtualnej.

Aby zaktualizować klucz SSH, zobacz Zarządzanie użytkownikami administracyjnymi, SSH przy użyciu rozszerzenia VMAccess z interfejsem wiersza polecenia platformy Azure.

Możesz również zresetować hasło lub klucz SSH przy użyciu funkcji Resetuj hasło w Azure Portal.

Aby uzyskać więcej informacji, zobacz rozszerzenie vmaccess dla systemu Linux.

Resetowanie hasła przy użyciu konsoli szeregowej w trybie pojedynczego użytkownika

Konsola szeregowa umożliwia zresetowanie admin user konta lub root w trybie pojedynczego użytkownika w celu uzyskania dostępu do maszyny wirtualnej.

  1. Postępuj zgodnie z procesem trybu pojedynczego użytkownika , aby zresetować lub dodać hasło.

  2. Upewnij się, że uwierzytelnianie haseł jest włączone na serwerze OpenSSH, jeśli próbujesz zalogować się na serwerze przy użyciu uwierzytelniania za pomocą protokołu SSH i hasła.

    1. Sprawdź, PasswordAuthentitcation czy wartość jest ustawiona na yes wartość , czy no in /etc/ssh/sshd_config , uruchamiając następujące polecenie:

      egrep "^PasswordAuthentication" /etc/ssh/sshd_config
      
    2. PasswordAuthentication Jeśli wartość jest ustawiona na no, użyj edytora tekstów, takiego jak vi lubnano, aby zmienić wartość na yes.

  3. Utwórz nowe hasło dla admin user konta lub root , uruchamiając passwd polecenie:

    passwd <admin_user>
    
  4. Sprawdź, czy SElinux jest w enforcing trybie w /etc/sysconfig/selinux programie, uruchamiając następujące polecenie:

    cat /etc/sysconfig/selinux
    
  5. Jeśli SElinux jest w enforcing trybie, upewnij się, że SElinux zezwala na zmiany pliku wprowadzone za passwd pomocą polecenia. Po zmianie hasła można uruchomić następujące polecenie, aby ponownie dodać etykietę systemu plików, aby ułatwić ładowanie zmian.

    touch /.autorelabel
    
  6. Uruchom ponownie maszynę wirtualną, uruchamiając następujące polecenie:

    /usr/sbin/reboot -f
    
  7. Spróbuj uzyskać dostęp do maszyny wirtualnej.

Resetowanie hasła przy użyciu naprawczej maszyny wirtualnej

Ta metoda została przetestowana przy użyciu obsługiwanych dystrybucji i wersji systemu Linux.

Uwaga

Jeśli występują problemy wpływające na wirtualne urządzenie sieciowe platformy Azure, ta metoda nie ma zastosowania do Twojej sytuacji. Zamiast tego należy skontaktować się z dostawcą wirtualnego urządzenia sieciowego, aby uzyskać instrukcje dotyczące bezpiecznego resetowania hasła.

Możesz uruchomić polecenia naprawy maszyny wirtualnej , aby utworzyć maszynę wirtualną do naprawy, która ma kopię dołączonego dysku systemu operacyjnego maszyny wirtualnej. Następnie zainstaluj kopię systemów plików systemu operacyjnego na maszynie wirtualnej naprawy za pośrednictwem środowiska chroot.

Uwaga

Alternatywnie utwórz maszynę wirtualną ratunkową ręcznie przy użyciu Azure Portal. Aby uzyskać więcej informacji, zobacz Rozwiązywanie problemów z maszyną wirtualną z systemem Linux, dołączając dysk systemu operacyjnego do maszyny wirtualnej odzyskiwania przy użyciu Azure Portal.

  1. Uruchom następujące polecenia az vm repair create , aby utworzyć kopię dysku systemu operacyjnego. Następnie dysk jest automatycznie dołączany do maszyny wirtualnej odzyskiwania.

    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. Zaloguj się do naprawy maszyny wirtualnej i rozwiąż problemy ze środowiskiem chroot.

  3. Upewnij się, że uwierzytelnianie haseł jest włączone na serwerze OpenSSH, jeśli próbujesz zalogować się na serwerze przy użyciu uwierzytelniania za pomocą protokołu SSH i hasła.

    1. Sprawdź, PasswordAuthentitcation czy wartość jest ustawiona na yes wartość , czy no in /etc/ssh/sshd_config , uruchamiając następujące polecenie:

      egrep "^PasswordAuthentication" /etc/ssh/sshd_config
      
    2. PasswordAuthentication Jeśli wartość jest ustawiona na no, użyj edytora tekstów, takiego jak vi lubnano, aby zmienić wartość na yes.

  4. Utwórz nowe hasło dla admin user konta lub root , uruchamiając passwd polecenie:

    passwd <admin_user>
    
  5. Sprawdź, czy SElinux jest w enforcing trybie w /etc/sysconfig/selinux programie, uruchamiając następujące polecenie:

    cat /etc/sysconfig/selinux
    
  6. Jeśli SElinux jest w enforcing trybie, upewnij się, że SElinux zezwala na zmiany pliku wprowadzone za passwd pomocą polecenia. Po zmianie hasła można uruchomić następujące polecenie, aby ponownie dodać etykietę systemu plików, aby ułatwić ładowanie zmian.

    touch /.autorelabel
    
  7. Zamknij środowisko chroot.

  8. Ponownie zainstaluj dysk systemu operacyjnego na maszynie wirtualnej, której dotyczy problem, zamieniając dysk systemu operacyjnego za pomocą następującego polecenia:

    az vm repair restore -g $AZ_RESOURCE_GROUP -n $AZ_VM_NAME --verbose
    
  9. Spróbuj uzyskać dostęp do maszyny wirtualnej.

Następne kroki

Skontaktuj się z nami, aby uzyskać pomoc

Jeśli masz pytania lub potrzebujesz pomocy, utwórz wniosek o pomoc techniczną lub zadaj pytanie w społeczności wsparcia dla platformy Azure. Możesz również przesłać opinię o produkcie do społeczności opinii platformy Azure.