Сброс локального пароля Linux в azure VMs

В этой статье содержится два метода сброса локальных паролей виртуальной машины Linux (VM). Если срок действия учетной записи пользователя истек или вы хотите создать новую учетную запись, можно использовать следующие методы для создания новой учетной записи локального администратора и восстановления доступа к VM.

Сброс пароля с помощью агента Azure Linux

Пароль можно сбросить, не привязав диск ОС к другому VM. Этот метод требует установки агента Azure Linux на затронутом VM.

  1. Убедитесь, что служба Агента Azure Linux (waagent) запущена в пострадавшем VM.

  2. Настройка переменных среды и использование Azure CLI или Azure Cloud Shell для сброса пароля:

    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. Попробуйте получить доступ к VM.

Чтобы обновить ключ SSH, см. в рублях Управление административными пользователями , SSH с помощью расширения VMAccess с помощью CLI Azure.

Вы также можете сбросить пароль или ключ SSH с помощью функции Reset Password на портале Azure.

Сброс пароля с помощью VM восстановления

Этот метод был протестирован с помощью поддерживаемых дистрибутивов и версий Linux.

Примечание

Если возникают проблемы, влияющие на виртуальный прибор сети Azure, этот метод не применяется к вашей ситуации. Вместо этого необходимо связаться с поставщиком сетевого виртуального устройства, чтобы получить инструкции по безопасному сбросу пароля.

  1. Снимок диска ОС пострадавшего VM в качестве резервного копирования. Дополнительные сведения см. в фотоснимок диска.

  2. Выполнить следующий ремонт az vm создать команды. Это создаст копию диска ОС и автоматически прикрепит диск к VM восстановления.

    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
    
  3. Войдите в VM восстановления. Установите корневую файловую систему на диск данных на /восстановление и задайте поле паролей пустое состояние.

    # You have to run the following commands as the root user.
    
    sudo -i
    
    # Identify the device name of the data disk that's attached to the VM.
    
    lsblk
    
    # Mount the OS disk that's attached as a data disk to the recovery VM. 
    
    mkdir /recovery
    mount /dev/sdc1 /recovery
    
    # [OPTIONAL] If the output from lsblk shows that the root file system is located on a logical volume, then you have to mount that logical volume instead.
    
    mount /dev/rootvg/rootlv /recovery
    
    # Make sure that password authentication is enabled on the OpenSSH server if you will try to log in to the server by using SSH and password authentication.
    
    egrep "^PasswordAuthentication" /recovery/etc/ssh/sshd_config
    
    # Enter the user name. It can be "root" or the name of the admin user.
    
    USER_NAME="root"
    
    # Make a backup of the current /recovery/etc/shadow file.
    
    cp -av /recovery/etc/shadow /recovery/etc/shadow.$( date '+%Y.%m.%d_%H.%M.%S' )
    
    # Remove the root password from the /recovery/etc/shadow file.
    
    sed -r -i.azbackup "s/${USER_NAME}\:[^\:]*/${USER_NAME}\:/g" /recovery/etc/shadow
    
    # Compare the differences between the password files.
    
    diff /recovery/etc/shadow /recovery/etc/shadow.azbackup
    
    # Make sure that you sync any pending I/O operations on the file system.
    
    sync 
    
    # Unmount the root file system before you remove the disk.
    umount /recovery
    
  4. Remount the OS disk to the affected VM by swapping the OS disks:

    az vm repair restore -g $AZ_RESOURCE_GROUP -n $AZ_VM_NAME --verbose
    
  5. Войдите на сервер с серийной консоли или с помощью SSH и учетной записи пользователя, для которой поле паролей было сброшено в пустое состояние.. Когда система запросит пароль пользователя, нажмите кнопку Ввод , чтобы войти в систему. Если серийная консоль не включена в VM, необходимо прикрепить к ней учетную запись хранилища, чтобы включить диагностику загрузки.

  6. Используйте команду passwd , чтобы настроить новый пароль для учетной записи пользователя промежуточным образом.

  7. Доступ к серверу с помощью SSH и ввод нового пароля, настроенного с серийной консоли.

Дальнейшие действия