2016-05-13 3 views
2

Hier ist ein sehr einfacher ansible Fall, der mich sehr gestört hat.Ansible für Cisco IOS über SSH, mit "Authentifizierung fehlgeschlagen" Nachricht

Dies ist der Inhalt von ansible.cfg:

[defaults] 
transport = paramiko 
hostfile = ./hosts 
host_key_checking = False 
timeout = 5 

der Inhalt der Hosts, die alle mit einem Benutzer mit dem Namen "cisco" und das Kennwort "cisco" zu

[routers] 
R1 
R2 
R3 
... 

die Hostvariable Datei (R1), ähnlich wie R2, R3, ..., nur anders in IP-Adressen:

--- 
ansible_ssh_host: 10.10.10.1 
ansible_ssh_user: cisco 
ansible_ssh_pass: cisco 

ich kann erfolgreich SSH auf diese ro uters über Linux, aber wenn ich ansible verwenden, führte es in „Authentifizierung fehlgeschlagen“:

fatal: [R1] => {'msg': 'FAILED: Authentication failed.', 'failed': True} 
fatal: [R2] => {'msg': 'FAILED: Authentication failed.', 'failed': True} 
... 

und ich getestet, um die Konnektivität mit einigen einer Zeile ansible Befehle, noch Fehler, auch wenn ich Eingabe der Benutzername und das Passwort manuell bekommen, zum Beispiel:

> ansible routers -m raw 
R1 | FAILED => FAILED: Authentication failed. 
R2 | FAILED => FAILED: Authentication failed.  

> ansible routers -u cisco -m raw 
R1 | FAILED => FAILED: Authentication failed. 
R2 | FAILED => FAILED: Authentication failed. 

> ansible routers -u cisco -m raw -k 
SSH password: 
R1 | FAILED => FAILED: Authentication failed. 
R2 | FAILED => FAILED: Authentication failed. 

Wie kann ich das lösen? Hilfen werden geschätzt.

+0

I f fand es heraus, indem es das volle Protokoll prüfte (paramiko.common.logging.basicConfig (level = paramiko.common.DEBUG), paramiko wird die Verbindung beenden, wenn die Authentifizierung des öffentlichen Schlüssels fehlgeschlagen ist, anstatt das Passwort weiter zu versuchen. Also, wenn paramiko verwendet wird, muss der Parameter "look_for_keys" in der Methode "connect()" auf False gesetzt werden – nonemaw

+0

Nach der Einstellung look_for_keys = False ist alles in Ordnung – nonemaw

+1

können Sie Ihre eigene Frage mit einem kleinen Detail beantworten, damit es anderen hilft. Danke –

Antwort

0

Der Python-Interpreter connect() for paramiko connections kann wie folgt verwendet werden:

connect(hostname, port=22, username=None, password=None, pkey=None, key_filename=None, timeout=None, allow_agent=True, look_for_keys=True, compress=False, sock=None, gss_auth=False, gss_kex=False, gss_deleg_creds=True, gss_host=None, banner_timeout=None, auth_timeout=None)

[& hellip;]

look_for_keys (bool) - False für Erkennbar privaten Schlüssel der Suche zu deaktivieren gesetzt Dateien in ~/.ssh/

+0

Aus Gründen der Klarheit suchte Arbab Nazar nicht nach der Antwort. Sie verlangten, dass es für die Nachwelt *, das Ziel von SO, klar geschrieben wird. Ich habe versucht, diese Antwort für bessere Klarheit anzupassen. Wenn Sie mehr von einer Erklärung hinzufügen können, die auch geschätzt werden würde. –