Wie man die Host-Schlüsselprüfung in Ansible deaktiviert

AnsibleAnsibleBeginner
Jetzt üben

💡 Dieser Artikel wurde von AI-Assistenten übersetzt. Um die englische Version anzuzeigen, können Sie hier klicken

Einführung

Ansible ist ein leistungsstarkes IT-Automatisierungstool, das die Infrastrukturverwaltung und -bereitstellung vereinfacht. Wenn Sie jedoch mit Remotehosts arbeiten, kann die standardmäßige Host-Schlüsselprüfung von Ansible manchmal Probleme verursachen. In diesem Tutorial erfahren Sie, wie Sie die Host-Schlüsselprüfung in Ansible deaktivieren, um ein reibungsloses und effizientes Automatisierungs-Erlebnis zu gewährleisten.

Grundlagen der Host-Schlüsselprüfung

Die Host-Schlüsselprüfung ist ein Sicherheitsmerkmal in Ansible, das hilft, die Identität der Remotehosts zu überprüfen, mit denen Sie eine Verbindung herstellen. Wenn Sie sich zum ersten Mal mit einem Remotehost verbinden, speichert Ansible den öffentlichen Schlüssel des Hosts in einer known_hosts-Datei. Bei nachfolgenden Verbindungen vergleicht Ansible den öffentlichen Schlüssel des Hosts mit dem in der known_hosts-Datei gespeicherten, um sicherzustellen, dass es sich um denselben Remotehost handelt, mit dem Sie sich zuvor verbunden haben.

Dieser Prozess hilft, Man-in-the-Middle-Angriffe zu verhindern, bei denen ein Angreifer Ihre Verbindung abfangen und sich als der Remotehost ausgeben könnte. Durch die Überprüfung der Host-Identität kann Ansible sicherstellen, dass Sie mit dem richtigen Remotehost kommunizieren.

In einigen Fällen möchten Sie die Host-Schlüsselprüfung jedoch möglicherweise deaktivieren, beispielsweise wenn Sie mit kurzlebigen oder dynamisch bereitgestellten Hosts arbeiten oder Ihre Ansible-Playbooks testen. Das Deaktivieren der Host-Schlüsselprüfung kann den Verbindungsaufbau schneller und bequemer machen, erhöht aber auch das Risiko eines Man-in-the-Middle-Angriffs.

graph LR A[Client] -- Connect --> B[Remote Host] B -- Public Key --> A A -- Verify Public Key --> C[Known Hosts File]
Aktion Beschreibung
Connect Der Client stellt eine Verbindung zum Remotehost her.
Public Key Der Remotehost sendet seinen öffentlichen Schlüssel an den Client.
Verify Public Key Der Client vergleicht den empfangenen öffentlichen Schlüssel mit dem in der known_hosts-Datei gespeicherten.

Deaktivieren der Host-Schlüsselprüfung

Um die Host-Schlüsselprüfung in Ansible zu deaktivieren, können Sie die folgenden Methoden verwenden:

Umgebungsvariable

Sie können die Umgebungsvariable ANSIBLE_HOST_KEY_CHECKING auf False setzen, um die Host-Schlüsselprüfung global zu deaktivieren:

export ANSIBLE_HOST_KEY_CHECKING=False
ansible-playbook my_playbook.yml

Ansible-Konfigurationsdatei

Sie können die Host-Schlüsselprüfung auch deaktivieren, indem Sie die Option host_key_checking in der Ansible-Konfigurationsdatei (/etc/ansible/ansible.cfg oder ~/.ansible.cfg) festlegen:

[defaults]
host_key_checking = False

Ansible-Befehlszeilenoption

Alternativ können Sie die Host-Schlüsselprüfung für einen bestimmten Ansible-Befehl deaktivieren, indem Sie die Option --ask-vault-pass oder -k verwenden:

ansible-playbook my_playbook.yml --ask-vault-pass -k

Dadurch werden Sie aufgefordert, das Vault-Passwort einzugeben, und die Host-Schlüsselprüfung wird für den aktuellen Befehl deaktiviert.

graph LR A[Ansible] -- Set Environment Variable --> B[ANSIBLE_HOST_KEY_CHECKING=False] A -- Set Configuration File --> C[ansible.cfg] A -- Use Command-line Option --> D[--ask-vault-pass/-k]

Durch das Deaktivieren der Host-Schlüsselprüfung können Sie den Verbindungsaufbau vereinfachen und es leichter machen, mit dynamischen oder kurzlebigen Hosts zu arbeiten. Es ist jedoch wichtig zu beachten, dass dies auch das Risiko eines Man-in-the-Middle-Angriffs erhöht. Daher wird empfohlen, die Host-Schlüsselprüfung nur in Nicht-Produktionsumgebungen oder wenn Sie sicher sind, dass die Remotehosts vertrauenswürdig sind, zu deaktivieren.

Konfigurieren der Host-Schlüsselprüfung

Wenn Sie die Host-Schlüsselprüfung aktiv lassen möchten, können Sie sie an Ihre Bedürfnisse anpassen. Hier sind einige Optionen:

Manuelles Akzeptieren von Host-Schlüsseln

Wenn Sie sich zum ersten Mal mit einem Remotehost verbinden, wird Sie Ansible aufgefordern, den öffentlichen Schlüssel des Hosts zu akzeptieren. Sie können den Schlüssel manuell akzeptieren, indem Sie bei entsprechender Aufforderung "yes" eingeben:

The authenticity of host 'example.com (192.168.1.100)' can't be established.
ECDSA key fingerprint is SHA256:abcd1234efgh5678.
Are you sure you want to continue connecting (yes/no)? yes

Dadurch wird der öffentliche Schlüssel des Hosts zur known_hosts-Datei hinzugefügt, und Ansible verwendet ihn, um die Identität des Hosts bei nachfolgenden Verbindungen zu überprüfen.

Automatisches Akzeptieren von Host-Schlüsseln

Alternativ können Sie Ansible so konfigurieren, dass es Host-Schlüssel automatisch akzeptiert, indem Sie die Option host_key_auto_add in der Ansible-Konfigurationsdatei festlegen:

[defaults]
host_key_auto_add = True

Dadurch werden neue Host-Schlüssel automatisch zur known_hosts-Datei hinzugefügt, ohne Sie zu fragen.

Angeben einer benutzerdefinierten known_hosts-Datei

Standardmäßig verwendet Ansible die Datei ~/.ssh/known_hosts, um Host-Schlüssel zu speichern. Sie können jedoch eine benutzerdefinierte known_hosts-Datei angeben, indem Sie die Umgebungsvariable ANSIBLE_SSH_ARGS festlegen:

export ANSIBLE_SSH_ARGS="-o UserKnownHostsFile=/path/to/custom/known_hosts"
ansible-playbook my_playbook.yml

Dies kann nützlich sein, wenn Sie separate known_hosts-Dateien für verschiedene Umgebungen oder Projekte verwalten möchten.

graph LR A[Ansible] -- Prompt for Manual Acceptance --> B[known_hosts file] A -- Automatically Accept --> C[known_hosts file] A -- Specify Custom File --> D[/path/to/custom/known_hosts]

Durch die Konfiguration der Host-Schlüsselprüfung können Sie einen Kompromiss zwischen Sicherheit und Bequemlichkeit finden und sicherstellen, dass Ihre Ansible-Verbindungen sicher sind, während dennoch ein effizienter Arbeitsablauf möglich ist.

Zusammenfassung

Durch das Deaktivieren der Host-Schlüsselprüfung in Ansible können Sie Ihre Automatisierungsworkflows optimieren, Reibungsverluste reduzieren und die Gesamtleistung Ihrer Infrastrukturverwaltung verbessern. In diesem Tutorial haben Sie einen umfassenden Überblick über den Prozess erhalten, einschließlich der Grundlagen der Host-Schlüsselprüfung, der Schritte zur Deaktivierung und der verfügbaren Konfigurationsoptionen. Mit diesen Erkenntnissen können Sie nun diese Technik sicher umsetzen und Ihre mit Ansible betriebenen Automatisierungsfähigkeiten verbessern.