Udostępnij za pośrednictwem


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

Dotyczy: ✔️ maszyny wirtualne z systemem Linux

Ten artykuł zawiera trzy metody resetowania lokalnych haseł 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 Linux platformy Azure

Hasło można zresetować bez dołączania dysku systemu operacyjnego do innej maszyny wirtualnej. Ta metoda wymaga zainstalowania agenta systemu Linux platformy Azure na maszynie wirtualnej, której dotyczy problem.

  1. Upewnij się, że usługa Azure Linux Agent (waagent) jest uruchomiona na maszynie wirtualnej, której dotyczy problem, i jest w stanie gotowości w witrynie 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 za pomocą interfejsu wiersza polecenia platformy Azure.

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

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

Resetowanie hasła przy użyciu konsoli szeregowej z trybem pojedynczego użytkownika

Za pomocą konsoli szeregowej można zresetować admin user konto lub root za pomocą trybu pojedynczego użytkownika na potrzeby 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 na serwerze OpenSSH jest włączone uwierzytelnianie haseł, jeśli spróbujesz zalogować się na serwerze przy użyciu protokołu SSH i uwierzytelniania hasłem.

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

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

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

    passwd <admin_user>
    
  4. Sprawdź, czy SElinux jest w enforcing trybie, /etc/sysconfig/selinux 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 w pliku wprowadzone za passwd pomocą polecenia . Po zmianie hasła można uruchomić następujące polecenie, aby ponownie opracować 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 naprawy maszyny wirtualnej

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

Uwaga 16.

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ą naprawy , która ma kopię dołączonego dysku systemu operacyjnego maszyny wirtualnej, której dotyczy problem. Następnie zainstaluj kopię systemów plików systemu operacyjnego na maszynie wirtualnej naprawy za pośrednictwem środowiska chroot.

Uwaga 16.

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

  1. Uruchom następujące polecenia az vm repair create , aby utworzyć kopię dysku systemu operacyjnego. Następnie dysk jest automatycznie dołączony 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 maszyny wirtualnej naprawy i rozwiąż problemy ze środowiskiem chroot.

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

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

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

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

    passwd <admin_user>
    
  5. Sprawdź, czy SElinux jest w enforcing trybie, /etc/sysconfig/selinux 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 w pliku wprowadzone za passwd pomocą polecenia . Po zmianie hasła można uruchomić następujące polecenie, aby ponownie opracować etykietę systemu plików, aby ułatwić ładowanie zmian.

    touch /.autorelabel
    
  7. Zamknij środowisko chroot.

  8. Ponownie odinstaluj 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 na temat platformy Azure.