Могу ли я обойти проверку ключа хоста в Ansible?


19

Я запускаю Ansible playbook с тонким хаком для работы с произвольным портом, перенаправленным на порт (поэтому я могу использовать одну машину без прямого доступа ко многим машинам).

У меня есть предварительная задача для изменения ansible_portпеременной, поэтому, когда я начинаю выполнять свои реальные задачи и роли, мне предлагается принять hostkeys для localhost на некотором случайном порте.

Поскольку я наивен и не беспокоюсь о безопасности, я бы хотел, чтобы ssh автоматически принимал и перенаправлял /dev/null(или другой файл для регистрации).

Это возможно?


Вы можете сделать это с помощью параметров ssh, передаваемых в ansible config.
Иржи Клауда

Ответы:


26

Обычно это делается путем установки следующего значения в ansible.cfg:

[defaults]
host_key_checking = False

Если вы не хотите изменять, ansible.cfgвы можете установить переменную окружения следующим образом:

export ANSIBLE_HOST_KEY_CHECKING=False

Источник: http://docs.ansible.com/ansible/intro_getting_started.html#host-key-checking


Я использую MacOS и устанавливаю host_key_checking = False, но я по-прежнему получаю сообщение «ПРЕДУПРЕЖДЕНИЕ: ВОЗМОЖНО ОБНАРУЖЕНО РАЗМЕЩЕНИЕ DNS!». Я исправил это после того, как понял, что ранее подключился к целевому хосту с тем же именем, а затем перестроил его, чтобы в ./ssh/known_hosts был старый ключ.
Чад Джулиано

21

В ваш ansible.cfgфайл нужно добавить следующую строку:

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

Вы также можете добавить эти опции в свой ~/.ssh/configна каждой машине, с которой вы запускаете что-то вроде этого:

Host *
   StrictHostKeyChecking no
   UserKnownHostsFile=/dev/null

1
Это должно работать. Кроме того, посмотрите на файл ansible.cfg для дополнительных настроек :)
Dawny33

+1 для дополнения Доуни, потому что те, кто использует Paramiko, должны будут использовать ansible.cfg
Лесной Охотник

1
Есть ли подходящий способ установить это внутри playbook? Я пытался, ansible_ssh_common_argsи ansible_ssh_extra_argsэто не отменяет то, что у меня есть в ansible.cfg. У меня есть ansible.cfg, который я использую для всего остального и предпочел бы просто переопределить эти параметры для этого типа playbook, чем скопировать его просто для того, чтобы внести это изменение.
Питер Тернер

3
Я не могу говорить с этими переменными, Питер, но вы можете поместить модифицированный ansible.cfg в каталог с этой книгой, и он будет иметь приоритет.
Лесной Охотник

1
UserKnownHostsFile = / dev / null полностью нарушить безопасность ssh
mmv-ru
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.