Сброс локального пароля Linux на виртуальных машинах Azure

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

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

Вы можете сбросить пароль, не присоединяя диск ОС к другой виртуальной машине. Для этого метода требуется, чтобы агент Linux Azure был установлен на затронутой виртуальной машине.

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

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

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

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

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

Дополнительные сведения см. в статье Расширение vmaccess для Linux.

Сброс пароля с помощью последовательной консоли в однопользовательском режиме

Последовательную консоль можно использовать для сброса учетной admin user записи или root в однопользовательском режиме для доступа к виртуальной машине.

  1. Выполните однопользовательский режим , чтобы сбросить или добавить пароль.

  2. Убедитесь, что проверка подлинности по паролю включена на сервере OpenSSH, если вы пытаетесь войти на сервер с помощью проверки подлинности SSH и пароля.

    1. Проверьте, задано yes ли PasswordAuthentitcation значение или no в, /etc/ssh/sshd_config выполнив следующую команду:

      egrep "^PasswordAuthentication" /etc/ssh/sshd_config
      
    2. PasswordAuthentication Если для параметра задано значение no, используйте текстовый редактор, vi например или nano , чтобы изменить значение на yes.

  3. Создайте новый пароль для учетной admin user записи или root , выполнив passwd команду :

    passwd <admin_user>
    
  4. Проверьте, находится ли SElinux в enforcing режиме , /etc/sysconfig/selinux выполнив следующую команду:

    cat /etc/sysconfig/selinux
    
  5. Если SElinux находится в enforcing режиме , убедитесь, что SElinux разрешены изменения файла, внесенные passwd с помощью команды . После изменения пароля можно выполнить следующую команду, чтобы переназначить файловую систему, чтобы упростить загрузку изменения.

    touch /.autorelabel
    
  6. Перезагрузите виртуальную машину, выполнив следующую команду:

    /usr/sbin/reboot -f
    
  7. Попробуйте получить доступ к виртуальной машине.

Сброс пароля с помощью виртуальной машины восстановления

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

Примечание.

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

Вы можете выполнить команды восстановления виртуальной машины , чтобы создать виртуальную машину восстановления с копией подключенного диска ОС затронутой виртуальной машины. Затем подключите копию файловых систем ОС к виртуальной машине восстановления через среду chroot.

Примечание.

Кроме того, создайте виртуальную машину для спасения вручную с помощью портал Azure. Дополнительные сведения см. в статье Устранение неполадок виртуальной машины Linux путем присоединения диска ОС к виртуальной машине восстановления с помощью портал Azure.

  1. Выполните следующие команды az vm repair create , чтобы создать копию диска ОС. Затем диск автоматически присоединяется к виртуальной машине восстановления.

    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. Войдите в виртуальную машину восстановления и устраните неполадки в среде chroot.

  3. Убедитесь, что проверка подлинности по паролю включена на сервере OpenSSH, если вы пытаетесь войти на сервер с помощью проверки подлинности SSH и пароля.

    1. Проверьте, задано yes ли PasswordAuthentitcation значение или no в, /etc/ssh/sshd_config выполнив следующую команду:

      egrep "^PasswordAuthentication" /etc/ssh/sshd_config
      
    2. PasswordAuthentication Если для параметра задано значение no, используйте текстовый редактор, vi например или nano , чтобы изменить значение на yes.

  4. Создайте новый пароль для учетной admin user записи или root , выполнив passwd команду :

    passwd <admin_user>
    
  5. Проверьте, находится ли SElinux в enforcing режиме , /etc/sysconfig/selinux выполнив следующую команду:

    cat /etc/sysconfig/selinux
    
  6. Если SElinux находится в enforcing режиме , убедитесь, что SElinux разрешены изменения файла, внесенные passwd с помощью команды . После изменения пароля можно выполнить следующую команду, чтобы переназначить файловую систему, чтобы упростить загрузку изменения.

    touch /.autorelabel
    
  7. Выйдите из среды chroot.

  8. Повторно подключите диск ОС к затронутой виртуальной машине, переключив диск ОС с помощью следующей команды:

    az vm repair restore -g $AZ_RESOURCE_GROUP -n $AZ_VM_NAME --verbose
    
  9. Попробуйте получить доступ к виртуальной машине.

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

Свяжитесь с нами для получения помощи

Если у вас есть вопросы или вам нужна помощь, создайте запрос в службу поддержки или обратитесь за поддержкой сообщества Azure. Вы также можете отправить отзыв о продукте в сообщество отзывов Azure.