Comment réinitialiser un mot de passe Linux local sur les machines virtuelles Azure

Cet article fournit trois méthodes pour réinitialiser les mots de passe locaux de machine virtuelle Linux. Si le compte d’utilisateur a expiré ou si vous souhaitez créer un compte, utilisez les méthodes suivantes. Elles vous permettront de créer un compte d’administrateur local et de retrouver l’accès à la machine virtuelle.

Réinitialiser le mot de passe à l’aide de l’agent Linux Azure

Vous pouvez réinitialiser le mot de passe sans attacher le disque du système d’exploitation à une autre machine virtuelle. Cette méthode nécessite que l’Agent Linux Azure soit installé sur la machine virtuelle affectée.

  1. Assurez-vous que le service Azure Linux Agent (waagent) s’exécute sur la machine virtuelle affectée et qu’il est prêt dans le Portail Azure.

  2. Configurez les variables d’environnement, puis utilisez Azure CLI ou Azure Cloud Shell pour réinitialiser le mot de passe :

    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. Essayez d’accéder à la machine virtuelle.

Pour mettre à jour la clé SSH, consultez l’article Gérer les utilisateurs administratifs, SSH à l’aide de l’extension VMAccess avec Azure CLI.

Vous pouvez également réinitialiser le mot de passe ou la clé SSH à l’aide de la fonctionnalité Réinitialiser le mot de passe disponible dans le portail Azure.

Pour plus d’informations, consultez Extension vmaccess pour Linux.

Réinitialiser le mot de passe à l’aide de la console série en mode mono-utilisateur

Vous pouvez utiliser la console série pour réinitialiser le compte ou root via le admin user mode mono-utilisateur pour l’accès aux machines virtuelles.

  1. Suivez le processus en mode mono-utilisateur pour réinitialiser ou ajouter un mot de passe.

  2. Vérifiez que l’authentification par mot de passe est activée sur le serveur OpenSSH si vous essayez de vous connecter au serveur à l’aide de l’authentification SSH et par mot de passe.

    1. Vérifiez si la valeur PasswordAuthentitcation est définie sur yes ou no dans /etc/ssh/sshd_config en exécutant la commande suivante :

      egrep "^PasswordAuthentication" /etc/ssh/sshd_config
      
    2. Si la valeur PasswordAuthentication est définie sur no, utilisez un éditeur de texte tel que vi ou nano pour remplacer la valeur par yes.

  3. Créez un mot de passe pour le compte admin user ou root en exécutant la commande passwd :

    passwd <admin_user>
    
  4. Vérifiez si SElinux est en mode enforcing dans /etc/sysconfig/selinux en exécutant la commande suivante :

    cat /etc/sysconfig/selinux
    
  5. Si SElinux est en mode enforcing, assurez-vous que SElinux autorise les modifications apportées au fichier avec la commande passwd. Une fois le mot de passe modifié, vous pouvez exécuter la commande suivante pour réétiqueter le système de fichiers afin de faciliter le chargement de la modification.

    touch /.autorelabel
    
  6. Redémarrez la machine virtuelle en exécutant la commande suivante :

    /usr/sbin/reboot -f
    
  7. Essayez d’accéder à la machine virtuelle.

Réinitialiser le mot de passe à l’aide d’une machine virtuelle de réparation

Cette méthode a été testée à l’aide des distributions et versions Linux prises en charge.

Remarque

Si vous rencontrez des problèmes qui affectent un Appliance virtuel réseau Azure, cette méthode ne s’applique pas à votre situation. À la place, vous devez contacter le fournisseur de l’appliance réseau virtuelle pour obtenir des instructions sur la façon de réinitialiser le mot de passe en toute sécurité.

Vous pouvez exécuter les commandes de réparation de machine virtuelle pour créer une machine virtuelle de réparation avec une copie du disque du système d’exploitation de la machine virtuelle affectée attachée. Ensuite, montez la copie des systèmes de fichiers du système d’exploitation sur la machine virtuelle de réparation via l’environnement chroot.

Remarque

Vous pouvez également créer une machine virtuelle de secours manuellement à l’aide de la Portail Azure. Pour en savoir plus, consultez l’article Résoudre les problèmes d’une machine virtuelle Linux en connectant le disque du système d’exploitation à une machine virtuelle de récupération à l’aide du portail Azure.

  1. Exécutez les commandes az vm repair create suivantes pour créer une copie du disque du système d’exploitation. Ensuite, le disque est automatiquement attaché à une machine virtuelle de récupération.

    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. Connectez-vous à la machine virtuelle de réparation et résolvez les problèmes liés à l’environnement chroot.

  3. Vérifiez que l’authentification par mot de passe est activée sur le serveur OpenSSH si vous essayez de vous connecter au serveur à l’aide de l’authentification SSH et par mot de passe.

    1. Vérifiez si la valeur PasswordAuthentitcation est définie sur yes ou no dans /etc/ssh/sshd_config en exécutant la commande suivante :

      egrep "^PasswordAuthentication" /etc/ssh/sshd_config
      
    2. Si la valeur PasswordAuthentication est définie sur no, utilisez un éditeur de texte tel que vi ou nano pour remplacer la valeur par yes.

  4. Créez un mot de passe pour le compte admin user ou root en exécutant la commande passwd :

    passwd <admin_user>
    
  5. Vérifiez si SElinux est en mode enforcing dans /etc/sysconfig/selinux en exécutant la commande suivante :

    cat /etc/sysconfig/selinux
    
  6. Si SElinux est en mode enforcing, assurez-vous que SElinux autorise les modifications apportées au fichier avec la commande passwd. Une fois le mot de passe modifié, vous pouvez exécuter la commande suivante pour réétiqueter le système de fichiers afin de faciliter le chargement de la modification.

    touch /.autorelabel
    
  7. Quittez l’environnement chroot.

  8. Remontez le disque du système d’exploitation sur la machine virtuelle affectée en échangeant le disque du système d’exploitation avec la commande suivante :

    az vm repair restore -g $AZ_RESOURCE_GROUP -n $AZ_VM_NAME --verbose
    
  9. Essayez d’accéder à la machine virtuelle.

Prochaines étapes

Contactez-nous pour obtenir de l’aide

Pour toute demande ou assistance, créez une demande de support ou posez une question au support de la communauté Azure. Vous pouvez également soumettre des commentaires sur les produits à la communauté de commentaires Azure.