2015-04-13 8 views
6

Ich bin ssh-Schlüssel generiert, und kopieren Sie es auf Remote-Server. Wenn ich versuche, auf diesen Server zuzugreifen, funktioniert alles einwandfrei:ansible ssh-Berechtigung verweigert

ssh [email protected]_address 

Benutzer ist kein Root. Wenn ich ssh throw ansible versuchen:

ansible-playbook -i hosts playbook.yml 

mit ansible Textbuch:

--- 
- hosts: web 
    remote_user: user 
    tasks: 
    - name: test connection 
     ping: 

und hosts-Datei:

[web] 
192.168.0.103 

Ich habe Fehler:

... 
Permission denied (publickey,password) 

Was ist das Problem?

+3

Wenn Sie sagen "alles funktioniert gut", fragt es nach Passwort oder nicht? Wiederholen Sie mit '-vvvv' und poste die Ausgabe. – Kashyap

Antwort

9

Ansible verwendet einen anderen Schlüssel als das, was Sie für die Verbindung mit dieser "Web" -Maschine verwenden.

Sie können explizit ansible konfigurieren, indem

private_key_file=/path/to/key_rsa 

einen bestimmten privaten Schlüssel zu verwenden, wie Achten Sie darauf, in the docs erwähnt, dass Sie mit ssh-copy-id -i /path/to/key_rsa.pub [email protected]_ip_address

+0

Ich hatte auch dieses Problem und die Verwendung von ssh-copy-id für jeden Host hat den Trick – MadPink

+0

Die Konfiguration bei /etc/ansible/ansible.cfg ist einer, aber nicht der einzige Ort wo alternative SSH-Schlüssel definiert werden können. Als ich mit diesem Problem konfrontiert wurde, lag die Ursache in den Inventardateien, in denen einzelne Schlüssel für jeden Host definiert wurden. –

1
diesen Schlüssel, welche ansible Anwendungen, auf die Remote-Benutzer in entfernten Rechner autorisieren

In meinem Fall habe ich einen ähnlichen Fehler beim Ausführen von Ansible Playbook bekommen, als der Host seinen Fingerabdruck geändert hat. Ich fand dies und versuchte, SSH-Verbindung von der Befehlszeile zu etablieren. Nach der Ausführung von ssh-keygen -f "/root/.ssh/known_hosts" -R my_ip wurde dieses Problem behoben.