web-dev-qa-db-fra.com

échec de la connexion SSH

J'essaie d'exécuter le rôle ansible sur plusieurs serveurs, mais j'obtiens une erreur:

fatal: [192.168.0.10]: INCROISSABLE! => {"changé": faux, "msg": "Échec de la connexion à l'hôte via ssh.", "Inaccessible": true}

Mon fichier/etc/ansible/hosts ressemble à ceci:

192.168.0.10 ansible_Sudo_pass='passphrase' ansible_ssh_user=user
192.168.0.11 ansible_Sudo_pass='passphrase' ansible_ssh_user=user
192.168.0.12 ansible_Sudo_pass='passphrase' ansible_ssh_user=user

Je n'ai aucune idée de ce qui se passe - tout semble aller bien - je peux me connecter via SSH, mais un ping envoyable renvoie la même erreur.

Le journal de l'exécution verbeuse:

<192.168.0.10> ÉTABLIR UNE CONNEXION SSH POUR UTILISATEUR: utilisateur <192.168.0.10> SSH: EXEC ssh -C -vvv -o ControlMaster = auto -o ControlPersist = 60s -o KbdInteractiveAuthentication = no -o PreferredAuthentications = gssapi-with-mic, gssapi-keyex, basé sur l'hôte, publickey -o PasswordAuthentication = no -o Utilisateur = utilisateur -o ConnectTimeout = 10 -o ControlPath =/racine/.ansible/cp/ansible-ssh-% h-% p-% r 192.168.0.10 '/ bin/sh -c' "" "(umask 22 && mkdir -p" echo $HOME/.ansible/tmp/ansible-tmp-1463151813.31-156630225033829 "&& echo" echo $HOME/.ansible/tmp/ansible-tmp-1463151813.31-156630225033829 ") '" ""' '

Pouvez-vous m'aider d'une manière ou d'une autre? Si je dois utiliser ansible en mode local (-c local), alors c'est inutile.

J'ai essayé de supprimer ansible_Sudo_pass et ansible_ssh_user, mais cela n'a pas aidé.

25
Thomas

Vous devez également modifier la clé ansible_ssh_pass ou la clé ssh. Par exemple, je l'utilise dans mon fichier d'inventaire:

192.168.33.100 ansible_ssh_pass=vagrant ansible_ssh_user=vagrant

Après cela, je peux me connecter à l'hôte distant:

ansible all -i tests -m ping

Avec le résultat suivant:

192.168.33.100 | SUCCESS => {
    "changed": false,
    "ping": "pong"
}

J'espère que cela vous aidera.

37
Arbab Nazar
mkdir /etc/ansible
cat > hosts
default ansible_ssh_Host=127.0.0.1 ansible_ssh_port=2222 ansible_ssh_user=vagrant ansible_ssh_private_key_file=.vagrant/machines/default/virtualbox/private_key

Allez dans votre répertoire playbook et lancez ansible all -m ping

4
SJP

Essayez de modifier votre fichier hôte pour: 

192.168.0.10
192.168.0.11
192.168.0.12
2
Nikola

$ansible -m ping all -vvv

Après avoir installé ansible sur Ubuntu ou CentOS, vous pouvez avoir les messages ci-dessous. Ne paniquez pas, vous devez avoir un droit d'accès au fichier /tmp de l'utilisateur [/home/user_name/.ansible/tmp/] . "Authentication or permission failure".

Cette préconisation va résoudre le problème.

[Your_server ~]$ ansible -m ping all
rusub-bm-gt | SUCCESS => {
    "changed": false,
    "ping": "pong"
}
Your_server | SUCCESS => {
    "changed": false,
    "ping": "pong"
}
0
Toungara Mohamed

J'avais ce problème, mais c'était pour une raison différente de celle documentée dans d'autres réponses. Mon hôte que j'essayais de déployer n'était disponible qu'en passant par une boîte de transfert. A l'origine, je pensais que c'était parce qu'Ansible ne reconnaissait pas mon fichier de configuration SSH, mais c'était le cas. La solution pour moi était de m'assurer que l'utilisateur présent dans le fichier de configuration SSH correspondait à l'utilisateur du manuel Ansible. Cela a résolu le problème pour moi.

0
entpnerd

Le ansible_ssh_port a changé lors du rechargement de la machine virtuelle. 

==> défaut: démarrage de la machine virtuelle ...

==> défaut: En attente de démarrage de la machine. Cela peut prendre quelques minutes...

default: SSH address: 127.0.0.1:2222

default: SSH username: vagrant

default: SSH auth method: private key

J'ai donc dû mettre à jour le fichier inventaire/hôtes comme suit:

default ansible_ssh_Host=127.0.0.1 ansible_ssh_port=2222 ansible_ssh_user='centos' ansible_ssh_private_key_file=<key path>
0
Geetha