Jak zresetować hasło maszyny wirtualnej z systemem Linux lub klucz SSH, naprawić konfigurację SSH i sprawdzić spójność dysku przy użyciu rozszerzenia VMAccess

Ważne

Klasyczne maszyny wirtualne zostaną wycofane 1 marca 2023 r.

Jeśli używasz zasobów IaaS z usługi ASM, ukończ migrację do 1 marca 2023 r. Zachęcamy do skorzystania z tego przełącznika wcześniej, aby skorzystać z wielu ulepszeń funkcji w usłudze Azure Resource Manager.

Aby uzyskać więcej informacji, zobacz Migrowanie zasobów IaaS do usługi Azure Resource Manager do 1 marca 2023 r.

Jeśli nie możesz nawiązać połączenia z maszyną wirtualną z systemem Linux na platformie Azure z powodu zapomnianego hasła, nieprawidłowego klucza Secure Shell (SSH) lub problemu z konfiguracją SSH, użyj rozszerzenia VMAccessForLinux z interfejsem wiersza polecenia platformy Azure, aby zresetować hasło lub klucz SSH, naprawić konfigurację SSH i sprawdzić spójność dysku.

Uwaga

Platforma Azure oferuje dwa różne modele wdrażania do tworzenia zasobów i pracy z Resource Manager klasycznym. W tym artykule o mowa przy użyciu klasycznego modelu wdrażania. Firma Microsoft zaleca, aby w przypadku większości nowych wdrożeń korzystać z modelu opartego na programie Resource Manager. Dowiedz się, jak wykonać te kroki w modelu przy użyciu usługi Resource Manager.

Interfejs wiersza polecenia platformy Azure umożliwia uzyskiwanie dostępu do poleceń za pomocą polecenia zestawu rozszerzeń maszyny wirtualnej platformy Azure z interfejsu wiersza polecenia (Bash, Terminal, wiersz polecenia). Uruchom zestaw rozszerzeń maszyny wirtualnej Azure Help, aby uzyskać szczegółowe informacje o użyciu rozszerzenia.

Za pomocą interfejsu wiersza polecenia platformy Azure można wykonywać następujące zadania:

Wymagania wstępne

Należy wykonać następujące czynności:

  • Musisz zainstalować interfejs wiersza polecenia platformy Azure i połączyć się ze swoją subskrypcją, aby korzystać z zasobów platformy Azure skojarzonych z Twoim kontem.
  • Ustaw prawidłowy tryb klasycznego modelu wdrażania, wpisując następujące polecenie w wierszu polecenia:
        azure config mode asm
    
  • Jeśli chcesz zresetować jedno z tych kluczy, musisz mieć nowe hasło lub zestaw kluczy SSH. Nie są one potrzebne, jeśli chcesz zresetować konfigurację SSH.

Resetowanie hasła

  1. Utwórz plik na komputerze lokalnym o nazwie PrivateConf.json przy użyciu tych wierszy. Zastąp wartości myUserNamei myP@ssW0rd własną nazwą użytkownika i hasłem, a następnie ustaw własną datę wygaśnięcia.

        {
        "username":"myUserName",
        "password":"myP@ssW0rd",
        "expiration":"2020-01-01"
        }
    
  2. Uruchom to polecenie, zastępując nazwę maszyny wirtualnej dla maszyny wirtualnej myVM.

        azure vm extension set myVM VMAccessForLinux Microsoft.OSTCExtensions 1.* –-private-config-path PrivateConf.json
    

Resetowanie klucza SSH

  1. Utwórz plik o nazwie PrivateConf.json z zawartością. Zastąp wartości myUserNamei mySSHKey własnymi informacjami.

        {
        "username":"myUserName",
        "ssh_key":"mySSHKey"
        }
    
  2. Uruchom to polecenie, zastępując nazwę maszyny wirtualnej dla maszyny wirtualnej myVM.

     azure vm extension set myVM VMAccessForLinux Microsoft.OSTCExtensions 1.* --private-config-path PrivateConf.json
    

Zresetuj hasło i klucz SSH

  1. Utwórz plik o nazwie PrivateConf.json z zawartością. Zastąp wartości myUserName, mySSHKeymyP@ssW0rd własnymi informacjami.

        {
        "username":"myUserName",
        "ssh_key":"mySSHKey",
        "password":"myP@ssW0rd"
        }
    
  2. Uruchom to polecenie, zastępując nazwę maszyny wirtualnej dla maszyny wirtualnej myVM.

        azure vm extension set MyVM VMAccessForLinux Microsoft.OSTCExtensions 1.* --private-config-path PrivateConf.json
    

Tworzenie nowego konta użytkownika sudo

Jeśli nie pamiętasz nazwy użytkownika, możesz użyć funkcji VMAccess, aby utworzyć nową z uprawnieniami sudo. W takim przypadku istniejąca nazwa użytkownika i hasło nie zostaną zmodyfikowane.

Aby utworzyć nowego użytkownika programu sudo z dostępem za pomocą hasła, użyj skryptu z tematu Resetowanie hasła i określ nową nazwę użytkownika.

Aby utworzyć nowego użytkownika sudo z dostępem do klucza SSH, użyj skryptu z tematu Resetowanie klucza SSH i określ nową nazwę użytkownika.

Możesz również użyć funkcji Resetuj hasło i klucz SSH , aby utworzyć nowego użytkownika z dostępem zarówno przy użyciu hasła, jak i klucza SSH.

Resetowanie konfiguracji SSH

Jeśli konfiguracja SSH jest w niepożądanym stanie, możesz również utracić dostęp do maszyny wirtualnej. Za pomocą rozszerzenia VMAccess można zresetować konfigurację do stanu domyślnego. Aby to zrobić, wystarczy ustawić klucz "reset_ssh" na wartość "True". Rozszerzenie uruchomi ponownie serwer SSH, otworzy port SSH na maszynie wirtualnej i zresetuje konfigurację SSH do wartości domyślnych. Konto użytkownika (nazwa, hasło lub klucze SSH) nie zostanie zmienione.

Uwaga

Plik konfiguracji SSH, który jest resetowany, znajduje się w pliku /etc/ssh/sshd_config.

  1. Utwórz plik o nazwie PrivateConf.json z tą zawartością.

        {
        "reset_ssh":"True"
        }
    
  2. Uruchom to polecenie, zastępując nazwę maszyny wirtualnej dla maszyny wirtualnej myVM.

     	azure vm extension set myVM VMAccessForLinux Microsoft.OSTCExtensions 1.* --private-config-path PrivateConf.json
    

Usuwanie użytkownika

Jeśli chcesz usunąć konto użytkownika bez bezpośredniego logowania się do maszyny wirtualnej, możesz użyć tego skryptu.

  1. Utwórz plik o nazwie PrivateConf.json z tą zawartością, zastępując nazwę użytkownika do usunięcia nazwą removeUserName.

        {
        "remove_user":"removeUserName"
        }
    
  2. Uruchom to polecenie, zastępując nazwę maszyny wirtualnej dla maszyny wirtualnej myVM.

        azure vm extension set myVM VMAccessForLinux Microsoft.OSTCExtensions 1.* --private-config-path PrivateConf.json
    

Wyświetlanie stanu rozszerzenia VMAccess

Aby wyświetlić stan rozszerzenia VMAccess, uruchom to polecenie.

        azure vm extension get

Sprawdzanie spójności dodanych dysków

Aby uruchomić program fsck na wszystkich dyskach maszyny wirtualnej z systemem Linux, należy wykonać następujące czynności:

  1. Utwórz plik o nazwie PublicConf.json z tą zawartością. Sprawdź, czy dysk ma sprawdzać dyski dołączone do maszyny wirtualnej, czy nie.

        {   
        "check_disk": "true"
        }
    
  2. Uruchom to polecenie, aby wykonać polecenie , zastępując nazwę maszyny wirtualnej dla maszyny wirtualnej myVM.

        azure vm extension set myVM VMAccessForLinux Microsoft.OSTCExtensions 1.* --public-config-path PublicConf.json 
    

Naprawianie dysków

Aby naprawić dyski, które nie są instalowanie lub mają błędy konfiguracji instalacji, użyj rozszerzenia VMAccess, aby zresetować konfigurację instalacji na maszynie wirtualnej z systemem Linux. Podsieć nazwę dysku dla dysku myDisk.

  1. Utwórz plik o nazwie PublicConf.json z tą zawartością.

        {
        "repair_disk":"true",
        "disk_name":"myDisk"
        }
    
  2. Uruchom to polecenie, aby wykonać polecenie , zastępując nazwę maszyny wirtualnej dla maszyny wirtualnej myVM.

        azure vm extension set myVM VMAccessForLinux Microsoft.OSTCExtensions 1.* --public-config-path PublicConf.json
    

Następne kroki

  • Jeśli chcesz zresetować hasło lub klucz SSH za pomocą Azure PowerShell cmdlet lub szablonów usługi Azure Resource Manager, popraw konfigurację SSH i sprawdź spójność dysku, zapoznaj się z dokumentacją rozszerzenia VMAccess w witrynie GitHub.
  • Możesz również użyć klucza Azure Portal, aby zresetować hasło lub klucz SSH maszyny wirtualnej z systemem Linux wdrożonej w klasycznym modelu wdrażania. Obecnie nie można w tym celu użyć portalu dla maszyny wirtualnej z systemem Linux wdrożonej w modelu Resource Manager wdrożenia.
  • Zobacz Informacje o rozszerzeniach i funkcjach maszyny wirtualnej, aby uzyskać więcej informacji na temat korzystania z rozszerzeń maszyn wirtualnych dla maszyn wirtualnych platformy Azure.