Ansible: Permission denied (publickey, password)
Ich bin nicht in der Lage, eine Verbindung zu einem host in Ansible. Dies ist der Fehler:
192.168.1.12 | nicht erreichbar! => {
"geändert": false,
"msg": "FEHLER! SSH ist ein unbekannter Fehler während der Verbindung. Wir empfehlen Ihnen, re-run der Befehl mit -vvvv, die
wird SSH aktivieren debugging-Ausgabe zu helfen bei der diagnose des Problems",
"nicht erreichbar": true }
Dies ist mein hosts
Datei:
[test]
192.168.1.12
- Und dies ist die ad-hoc-Anweisung:
ansible all -m ping
Ich bin in der Lage, eine Verbindung über raw ssh
.
- Ist notwendig, mehr info, ansible version und Umwelt, was sind u Verwendung als hypervisor? virtualbox? vagrant?, im moment klingen Sie wie ein Netzwerk-problem, senden Sie das Ergebnis
ansible all -m ping -vvv
? - Ihre Frage-Titel sagt "Permission denied (publickey, password)", aber der eigentliche Fehler, den du zitiert hast, sagt etwas ganz anderes. Was tatsächlich ein problem haben Sie?
- dieser Fehler erscheint, wenn ich den Befehl ausführen mit -vvvv option
Du musst angemeldet sein, um einen Kommentar abzugeben.
Standardmäßig Ansible versuchen, mit SSH-keys. Es scheint, dass Sie haben die falschen Tasten. Versuchen Sie, das Kennwort-Authentifizierung.
ansible all -m ping --ask-pass --ask-sudo-pass
Ich Hoffe, es hilft.
@bigdestroyer, auf setup-ssh-public-keys über das playbook
Ausführung dieses playbook mit
--ask-pass
da Sie in den setup-public-key-Authentifizierung.ansible-playbook setup_ssh.yml --ask-pass
Diese Rolle wird fügen Sie Ihren aktuellen Benutzer-public-key auf remote-host
authorized_keys
- Datei.HINWEIS
ask-pass
funktioniert nur ein mal pro Durchlauf, so dass dies nur funktionieren wird, mit Gastgebern, die das gleiche Kennwort.Normalerweise verwende ich
-limit
und führen Sie in den Reihen auf hosts, die das gleiche Kennwort.Zum Beispiel, nehmen wir an, host1,host2 und host3 hat Passwort
foo
host4 und host5 zulassenbar
ansible-playbook setup-ssh.yml --ask-pass -l host1,host2,host3
geben Sie Kennwort
foo
ansible-playbook setup-ssh.yml --ask-pass -l host4,host5
geben Sie Kennwort
bar
DANN
ansible -m ping host1,host2,host3,host4,host5
Lesen Sie in der rollendokumentation hier
ansible-galaxy install GROG.authorized-key
.urllib3
,pyopenssl
,ndg-httpsclient
, undpyasn1
python-Module, die zum ausführen SNI überprüfung in python >= 2.6. Sie können validate_certs=False, wenn Sie nicht brauchen, um zu bestätigen, die Server-Identität, aber diese ist unsicher und nichtpython -V
pip install urllib3
dann:pyopenssl, httpsclient, pyasn1
ansible-galaxy install GROG.authorized-key
. Sollten Sie noch einmal überprüfen, ansible installation, um sicherzustellen, dass jede Anforderung erfüllt wurde!Für diejenigen, die hierher kommen, laufen Ansible 2.6,
--ask-sudo-pass
ist jetzt veraltet. Die korrekte syntax ist:Dass ich auf diese Frage - meine ssh-keys nicht richtig eingerichtet. Ich fixierte diese mit den folgenden:
Stellen Sie sicher, dass jede Maschine über einen ssh-keys einrichten, mit dem Befehl ssh-keygen.
ssh-keygen
Übergeben Sie Ihre öffentlichen Schlüssel auf den Rechner mit dem ssh-copy-id Befehl.
ssh-copy-id -i <location of id_rsa.pub> <ip-address of host>
Half dies beheben meine Fehler, hoffentlich hilft es!
Ich dieses Problem behoben durch hinzufügen
--ask-pass
argument