Ansible Ssh-Copy-ID

Ansible Ssh Copy Id



Ansible est un outil d'automatisation gratuit et open source qui simplifie la gestion de la configuration et le déploiement d'applications sur plusieurs machines.

Ansible utilise le langage déclaratif pour décrire l'état souhaité des systèmes et gère automatiquement les tâches nécessaires pour atteindre cet état.

Ansible utilise SSH comme méthode de connexion par défaut pour se connecter à une machine cible. SSH fournit un canal de communication sécurisé et crypté entre le nœud de contrôle Ansible et les hôtes cibles.







En règle générale, la méthode la plus courante de configuration de l'authentification basée sur la clé SSH pour l'hôte cible est la commande ssh-copy-id. La commande copie la clé publique du nœud de contrôle dans le fichier « authorized_keys » sur l'hôte cible.



Cependant, lors de la configuration d'un système pour la première fois, vous aurez peut-être besoin d'Ansible pour le faire dans un playbook. C'est là que la communauté Ansible vient à la rescousse.



Dans la communauté Ansible, nous avons accès au rôle ssh_id_copy qui nous permet d'autoriser les systèmes pour l'authentification SSH sans mot de passe.





Ce rôle gère la configuration des clés SSH sur la machine distante, ce qui nous permet de créer un fichier d'inventaire Ansible avec la machine distante. Nous pouvons alors rapidement appeler n’importe quel playbook Ansible sur la machine distante.

Rôle Ansible Ssh_Copy_Id

Le rôle comporte des variables qui permettent à Ansible de configurer les clés SSH sur l'hôte distant. Ces variables comprennent :



Nom d'hôte – Il définit le système distant auquel se connecter (FQDN ou IP).

Nom d'utilisateur – Il spécifie le nom d'utilisateur pour se connecter au système distant.

Mot de passe – Il définit le mot de passe du nom d'utilisateur pour se connecter au système distant.

ssh_public_key – Il définit le chemin absolu vers le fichier de clé publique à configurer sur l'hôte distant.

Port – Il définit le port SSH.

Installation du rôle Ssh_Copy_Id

PRUDENCE: Nous ne pouvons pas assurer la validité et la sécurité des rôles et des modules pilotés par la communauté. Veuillez auditer et vérifier le fonctionnement d'un rôle/module avant de l'utiliser en production et sur des machines réelles. Aucune sécurité n'est garantie lorsque vous suivez les étapes décrites dans cet article.

Comme mentionné, ssh_copy_id est un rôle fourni par la communauté et fourni par Ryan. Le lien vers le référentiel est fourni comme suit :

https://github.com/ryankwilliams/ansible-ssh-copy-id

Avant de pouvoir l'utiliser, nous devons nous assurer qu'il est installé en exécutant la commande suivante :

$ ansible-galaxie installer rywillia.ssh-copy-id

Exemple d'utilisation

Une fois installé, nous pouvons utiliser le rôle dans un playbook comme démontré ci-dessous :

---
- nom
: configurer l'authentification SSH sans mot de passe sur une machine distante
hôtes
: hôte local
devenir
: Oui
les rôles
:
- rôle
: ryankwilliams.ssh_copy_id
dont
:
nom d'hôte
: 172.168.112.23
nom d'utilisateur
: Ubuntu
mot de passe
: mot de passe
ssh_public_key
: /home/debian12/.ssh/id_rsa.pub
port_ssh
: 22

L'exemple de playbook précédent montre comment utiliser le rôle pour configurer l'authentification SSH sans mot de passe, un utilisateur défini sur la machine distante.

Conclusion

Dans ce didacticiel d'introduction, vous avez appris comment tirer parti des rôles et modules fournis par la communauté pour configurer l'authentification SSH sans mot de passe sur des hôtes distants à l'aide d'un playbook Ansible.