Ошибка: 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