Comment désactiver la vérification des clés d'hôte dans Ansible

AnsibleAnsibleBeginner
Pratiquer maintenant

💡 Ce tutoriel est traduit par l'IA à partir de la version anglaise. Pour voir la version originale, vous pouvez cliquer ici

Introduction

Ansible est un outil d'automatisation informatique puissant qui simplifie la gestion et le déploiement de l'infrastructure. Cependant, lors de la collaboration avec des hôtes distants, la vérification des clés d'hôte par défaut d'Ansible peut parfois poser des problèmes. Ce tutoriel vous guidera tout au long du processus de désactivation de la vérification des clés d'hôte dans Ansible, afin de garantir une expérience d'automatisation fluide et efficace.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL ansible(("Ansible")) -.-> ansible/ModuleOperationsGroup(["Module Operations"]) ansible(("Ansible")) -.-> ansible/InventoryManagementGroup(["Inventory Management"]) ansible/ModuleOperationsGroup -.-> ansible/command("Execute Commands") ansible/ModuleOperationsGroup -.-> ansible/file("Manage Files/Directories") ansible/ModuleOperationsGroup -.-> ansible/ping("Network Test") ansible/ModuleOperationsGroup -.-> ansible/shell("Execute Shell Commands") ansible/InventoryManagementGroup -.-> ansible/host_variables("Set Host Variables") subgraph Lab Skills ansible/command -.-> lab-415240{{"Comment désactiver la vérification des clés d'hôte dans Ansible"}} ansible/file -.-> lab-415240{{"Comment désactiver la vérification des clés d'hôte dans Ansible"}} ansible/ping -.-> lab-415240{{"Comment désactiver la vérification des clés d'hôte dans Ansible"}} ansible/shell -.-> lab-415240{{"Comment désactiver la vérification des clés d'hôte dans Ansible"}} ansible/host_variables -.-> lab-415240{{"Comment désactiver la vérification des clés d'hôte dans Ansible"}} end

Comprendre la vérification des clés d'hôte

La vérification des clés d'hôte est une fonctionnalité de sécurité dans Ansible qui permet de vérifier l'identité des hôtes distants auxquels vous vous connectez. Lorsque vous vous connectez à un hôte distant pour la première fois, Ansible stockera la clé publique de l'hôte dans un fichier known_hosts. Lors des connexions suivantes, Ansible comparera la clé publique de l'hôte à celle stockée dans le fichier known_hosts pour s'assurer que l'hôte distant est le même que celui auquel vous vous êtes connecté précédemment.

Ce processus aide à prévenir les attaques de type « homme du milieu » (man-in-the-middle), où un attaquant pourrait intercepter votre connexion et se faire passer pour l'hôte distant. En vérifiant l'identité de l'hôte, Ansible peut s'assurer que vous communiquez avec le bon hôte distant.

Cependant, dans certains cas, vous pouvez souhaiter désactiver la vérification des clés d'hôte, par exemple, lorsque vous travaillez avec des hôtes éphémères ou approvisionnés dynamiquement, ou lorsque vous testez vos playbooks Ansible. Désactiver la vérification des clés d'hôte peut rendre le processus de connexion plus rapide et plus pratique, mais cela augmente également le risque d'une attaque de type « homme du milieu ».

graph LR A[Client] -- Connect --> B[Remote Host] B -- Public Key --> A A -- Verify Public Key --> C[Known Hosts File]
Action Description
Connect Le client se connecte à l'hôte distant.
Public Key L'hôte distant envoie sa clé publique au client.
Verify Public Key Le client compare la clé publique reçue à celle stockée dans le fichier known_hosts.

Désactiver la vérification des clés d'hôte

Pour désactiver la vérification des clés d'hôte dans Ansible, vous pouvez utiliser les méthodes suivantes :

Variable d'environnement

Vous pouvez définir la variable d'environnement ANSIBLE_HOST_KEY_CHECKING sur False pour désactiver globalement la vérification des clés d'hôte :

export ANSIBLE_HOST_KEY_CHECKING=False
ansible-playbook my_playbook.yml

Fichier de configuration Ansible

Vous pouvez également désactiver la vérification des clés d'hôte en définissant l'option host_key_checking dans le fichier de configuration Ansible (/etc/ansible/ansible.cfg ou ~/.ansible.cfg) :

[defaults]
host_key_checking = False

Option de ligne de commande Ansible

Alternativement, vous pouvez désactiver la vérification des clés d'hôte pour une commande Ansible spécifique en utilisant l'option --ask-vault-pass ou -k :

ansible-playbook my_playbook.yml --ask-vault-pass -k

Cela vous invitera à entrer le mot de passe du coffre-fort (vault) et désactivera la vérification des clés d'hôte pour la commande actuelle.

graph LR A[Ansible] -- Set Environment Variable --> B[ANSIBLE_HOST_KEY_CHECKING=False] A -- Set Configuration File --> C[ansible.cfg] A -- Use Command-line Option --> D[--ask-vault-pass/-k]

En désactivant la vérification des clés d'hôte, vous pouvez simplifier le processus de connexion et faciliter la collaboration avec des hôtes dynamiques ou éphémères. Cependant, il est important de noter que cela augmente également le risque d'une attaque de type « homme du milieu ». Il est donc recommandé de désactiver la vérification des clés d'hôte uniquement dans des environnements non de production ou lorsque vous êtes sûr que les hôtes distants sont fiables.

Configurer la vérification des clés d'hôte

Si vous préférez conserver la vérification des clés d'hôte activée, vous pouvez la configurer selon vos besoins. Voici quelques options :

Accepter manuellement les clés d'hôte

Lorsque vous vous connectez à un hôte distant pour la première fois, Ansible vous invitera à accepter la clé publique de l'hôte. Vous pouvez accepter manuellement la clé en tapant "yes" lorsque vous y êtes invité :

The authenticity of host 'example.com (192.168.1.100)' can't be established.
ECDSA key fingerprint is SHA256:abcd1234efgh5678.
Are you sure you want to continue connecting (yes/no)? yes

Cela ajoutera la clé publique de l'hôte au fichier known_hosts, et Ansible l'utilisera pour vérifier l'identité de l'hôte lors des connexions suivantes.

Accepter automatiquement les clés d'hôte

Alternativement, vous pouvez configurer Ansible pour qu'il accepte automatiquement les clés d'hôte en définissant l'option host_key_auto_add dans le fichier de configuration Ansible :

[defaults]
host_key_auto_add = True

Cela ajoutera automatiquement les nouvelles clés d'hôte au fichier known_hosts sans vous inviter à le faire.

Spécifier un fichier known_hosts personnalisé

Par défaut, Ansible utilise le fichier ~/.ssh/known_hosts pour stocker les clés d'hôte. Cependant, vous pouvez spécifier un fichier known_hosts personnalisé en définissant la variable d'environnement ANSIBLE_SSH_ARGS :

export ANSIBLE_SSH_ARGS="-o UserKnownHostsFile=/path/to/custom/known_hosts"
ansible-playbook my_playbook.yml

Cela peut être utile si vous souhaitez maintenir des fichiers known_hosts séparés pour différents environnements ou projets.

graph LR A[Ansible] -- Prompt for Manual Acceptance --> B[known_hosts file] A -- Automatically Accept --> C[known_hosts file] A -- Specify Custom File --> D[/path/to/custom/known_hosts]

En configurant la vérification des clés d'hôte, vous pouvez trouver un équilibre entre sécurité et commodité, en vous assurant que vos connexions Ansible sont sécurisées tout en permettant un flux de travail efficace.

Résumé

En désactivant la vérification des clés d'hôte dans Ansible, vous pouvez rationaliser vos flux de travail d'automatisation, réduire les obstacles et améliorer l'efficacité globale de la gestion de votre infrastructure. Ce tutoriel a fourni un aperçu complet du processus, couvrant la compréhension de la vérification des clés d'hôte, les étapes pour la désactiver et les options de configuration disponibles. Grâce à ces informations, vous pouvez désormais implémenter cette technique en toute confiance et améliorer vos capacités d'automatisation basées sur Ansible.