Kann ich die Überprüfung des Hostschlüssels in Ansible umgehen?


19

Ich führe ein Ansible-Playbook mit einem subtilen Hack aus, um an einem beliebigen Port weitergeleiteten Port zu arbeiten (damit ich einen Computer ohne direkten Zugriff auf viele Computer verwenden kann).

Ich habe eine Pre-Task zum Ändern der ansible_portVariablen. Wenn ich meine eigentlichen Tasks und Rollen ausführe, werde ich aufgefordert, die Hostkeys für localhost an einem zufälligen Port zu akzeptieren.

Da ich naiv bin und mich nicht um die Sicherheit kümmere, möchte ich, dass ssh automatisch akzeptiert und zu /dev/null(oder einer anderen Datei für die Protokollierung) umleitet .

Ist das möglich?


Sie können dies über die ssh-Optionen tun, die Sie an die ansible-Konfiguration übergeben.
Jiri Klouda

Antworten:


26

Dies erfolgt normalerweise durch Festlegen des folgenden Werts in ansible.cfg:

[defaults]
host_key_checking = False

Wenn Sie keine Änderungen ansible.cfgvornehmen möchten, können Sie eine Umgebungsvariable wie folgt festlegen:

export ANSIBLE_HOST_KEY_CHECKING=False

Quelle: http://docs.ansible.com/ansible/intro_getting_started.html#host-key-checking


Ich verwende MacOS und setze host_key_checking = False, aber es wird immer noch "WARNUNG: MÖGLICHER DNS-SPOOFING ERKANNT!" Angezeigt. Ich habe dies behoben, nachdem ich festgestellt hatte, dass ich zuvor eine Verbindung zu einem Zielhost mit demselben Namen hergestellt und ihn dann neu erstellt habe, sodass ein alter Schlüssel in ./ssh/known_hosts vorhanden war.
Chad Juliano

21

In Ihrer ansible.cfgDatei müssen Sie die folgende Zeile hinzufügen:

ssh_args = -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no

Sie können diese Optionen auch ~/.ssh/configauf jedem Computer hinzufügen, auf dem Sie sie ausführen:

Host *
   StrictHostKeyChecking no
   UserKnownHostsFile=/dev/null

1
Das sollte funktionieren. Weitere Einstellungen finden Sie in der Datei ansible.cfg :)
Dawny33

+1 für Dawnys Addition, da diejenigen, die Paramiko verwenden, ansible.cfg
Woodland Hunter am

1
Gibt es eine angemessene Möglichkeit, dies im Spielbuch festzulegen? Ich habe es versucht ansible_ssh_common_argsund ansible_ssh_extra_argses überschreibt nicht, was ich in der ansible.cfg habe. Ich habe eine ansible.cfg, die ich für alles andere verwende und diese Parameter für diese Art von Playbook lieber überschreibe, als sie nur zu kopieren, um diese Änderung vorzunehmen.
Peter Turner

3
Ich kann mit diesen Variablen nicht sprechen, Peter, aber Sie können eine geänderte ansible.cfg in das Verzeichnis mit diesem Wiedergabebuch einfügen, und sie hat Vorrang.
Woodland Hunter

1
UserKnownHostsFile = / dev / null brechen
vollständig SSH-
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.