Ansible: Permission denied (publickey, mot de passe)
Je ne suis pas en mesure de se connecter à un hôte dans Ansible. C'est l'erreur:
192.168.1.12 | INACCESSIBLE! => {
"modifié": false,
"msg": "ERREUR! SSH a rencontré une erreur inconnue lors de la connexion. Nous vous recommandons d'exécuter de nouveau la commande à l'aide -vvvv, qui
permettra SSH sortie de débogage pour aider à diagnostiquer le problème",
"inaccessible": true }
C'est mon hosts
fichier:
[test]
192.168.1.12
Et c'est le ad-hoc instruction:
ansible all -m ping
Je suis en mesure de se connecter via le raw ssh
.
- Est nécessaire plus d'infos, ansible version, et de l'environnement, ce sont u en utilisant comme hyperviseur? virtualbox? vagabond?, au moment de sonner comme un problème de réseau, d'envoyer le résultat de
ansible all -m ping -vvv
? - Votre question titre dit "Permission denied (publickey, mot de passe)", mais l'erreur que vous avez cité, dit quelque chose de totalement différent. Quel problème rencontrez-vous?
- cette erreur s'affiche lorsque j'exécute la commande avec -vvvv option
Vous devez vous connecter pour publier un commentaire.
Par défaut Ansible essayez d'utiliser des clés SSH. Il semble que vous avez mal clés. Essayez d'utiliser l'authentification par Mot de passe.
ansible all -m ping --ask-pass --ask-sudo-pass
J'Espère que cela aide.
@bigdestroyer, pour l'installation de clés publiques ssh utiliser ce playbook
Exécuter ce playbook avec
--ask-pass
puisque vous allez l'utiliser pour configurer l'authentification par clé publique.ansible-playbook setup_ssh.yml --ask-pass
Ce rôle va ajouter votre utilisateur actuel de la clé publique de l'hôte distant
authorized_keys
fichier.NOTE
ask-pass
ne fonctionne qu'une seule fois par courir si cela ne fonctionne qu'avec des hôtes qui a le même mot de passe.J'ai l'habitude d'utiliser
-limit
et d'exécuter dans les lots sur des hôtes qui a le même mot de passe.Par exemple, supposons host1,host2 et host3 a un mot de passe
foo
host4 et host5bar
ansible-playbook setup-ssh.yml --ask-pass -l host1,host2,host3
fournir le mot de passe
foo
ansible-playbook setup-ssh.yml --ask-pass -l host4,host5
fournir le mot de passe
bar
PUIS
ansible -m ping host1,host2,host3,host4,host5
Vous pouvez lire le rôle de la documentation ici
ansible-galaxy install GROG.authorized-key
.urllib3
,pyopenssl
,ndg-httpsclient
, etpyasn1
modules python pour effectuer SNI vérification en python >= 2.6. Vous pouvez utiliser validate_certs=False si vous n'avez pas besoin de confirmer les serveurs de l'identité, mais c'est dangereux et paspython -V
pip install urllib3
alors:pyopenssl, httpsclient, pyasn1
ansible-galaxy install GROG.authorized-key
. Vous devriez revérifier ansible processus d'installation pour vous assurer que toutes les exigences ont été respectées!Pour ceux qui viennent ici en cours d'exécution Ansible 2.6,
--ask-sudo-pass
est maintenant obsolète. La syntaxe correcte est:J'ai rencontré ce problème - mes clés ssh n'est pas configuré correctement. J'ai corrigé cela en utilisant les suivantes:
Assurez-vous que chaque machine a une des clés ssh mis en place, à l'aide de la commande ssh-keygen.
ssh-keygen
Passer votre clé publique sur la machine, à l'aide de la commande ssh-copy-id de commande.
ssh-copy-id -i <location of id_rsa.pub> <ip-address of host>
Cela a aidé à résoudre mon erreur, j'espère que ça aide!
J'ai résolu ce problème en ajoutant
--ask-pass
argument