Ошибка: Using a SSH password instead of a key is not possible because Host Key checking is enabled and sshpass does not support this
Ошибка {"msg": "Using a SSH password instead of a key is not possible because Host Key checking is enabled and sshpass does not support this. Please add this host's fingerprint to your known_hosts file to manage this host."} возникает в Ansible, когда вы пытаетесь подключиться к удаленному хосту, используя пароль SSH вместо ключа, но при этом включена проверка ключей хоста (Host Key checking). Эта проверка требует, чтобы отпечаток ключа удаленного хоста был добавлен в файл known_hosts, а утилита sshpass, используемая для передачи пароля, не может обойти эту проверку.
Возможные решения
- Добавление ключа хоста вручную в
known_hosts:- Подключитесь к хосту вручную с помощью SSH, чтобы его ключ был добавлен в
known_hosts. Например:
12ssh user@hostname - После первого подключения отпечаток ключа будет добавлен в файл
~/.ssh/known_hosts, и Ansible сможет подключаться к этому хосту без проблем.
- Подключитесь к хосту вручную с помощью SSH, чтобы его ключ был добавлен в
- Отключение проверки ключей хоста:
- Временное отключение проверки ключей хоста может помочь обойти эту ошибку. Для этого можно изменить параметр
host_key_checkingв конфигурационном файлеansible.cfg:
123[defaults]host_key_checking = False - Или добавить переменную окружения перед запуском плейбука:
12ANSIBLE_HOST_KEY_CHECKING=False ansible-playbook your_playbook.yml
- Временное отключение проверки ключей хоста может помочь обойти эту ошибку. Для этого можно изменить параметр
- Использование SSH-ключа вместо пароля:
- Настоятельно рекомендуется использовать SSH-ключи для аутентификации вместо пароля, так как это безопаснее и поддерживается по умолчанию Ansible без использования
sshpass. Настройте подключение с помощью SSH-ключей, добавив их на сервер и указав путь к приватному ключу вansible.cfg:
123[defaults]private_key_file = /path/to/your/private/key
- Настоятельно рекомендуется использовать SSH-ключи для аутентификации вместо пароля, так как это безопаснее и поддерживается по умолчанию Ansible без использования
- Установка и использование
sshpass(если требуется использование пароля):- Если необходимо использовать пароль и
sshpass, то необходимо отключить проверку ключей хоста, как указано выше, иначеsshpassне сможет работать. Убедитесь, чтоsshpassустановлен на вашей системе:
12sudo apt-get install sshpass # для Ubuntu/Debian
- Если необходимо использовать пароль и
Пример конфигурации ansible.cfg:
|
1 2 3 4 5 |
[defaults] inventory = inventory/hosts remote_user = your_user host_key_checking = False |
Вывод
Лучший подход — использовать SSH-ключи для аутентификации, а отключение проверки ключей хоста — это временное решение, которое следует применять с осторожностью, так как это снижает безопасность подключения.
Recommended Posts
Плейбук Ansible по развертыванию haproxy
15.02.2024
