¿Puedo omitir la comprobación de la clave de host en Ansible?

19

Estoy ejecutando un libro de jugadas Ansible con un truco sutil para trabajar en un puerto reenviado de puerto arbitrario (para que pueda usar una máquina sin acceso directo a muchas máquinas).

Tengo una tarea previa para cambiar la ansible_portvariable, así que cuando empiezo a ejecutar mis tareas y roles reales, se me solicita que acepte las teclas de host para localhost en algún puerto aleatorio.

Como soy ingenuo y no me importa la seguridad, me gustaría que ssh acepte automáticamente y redirija a /dev/null(u otro archivo para iniciar sesión).

es posible?

Peter Turner
fuente
Puede hacerlo a través de las opciones ssh que pasa a la configuración ansible.
Jiri Klouda

Respuestas:

26

Esto normalmente se hace estableciendo el siguiente valor en ansible.cfg:

[defaults]
host_key_checking = False

Si no desea modificar ansible.cfg, puede establecer una variable de entorno como esta:

export ANSIBLE_HOST_KEY_CHECKING=False

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

Zlemini
fuente
Estoy usando MacOS y establezco host_key_checking = False, pero aún recibí "ADVERTENCIA: ¡SE PUEDE DETECTAR EL POSIBLE SPOFING DE DNS!". Lo arreglé después de darme cuenta de que me había conectado a un host de destino con el mismo nombre anteriormente y luego lo reconstruí para que hubiera una clave antigua en ./ssh/known_hosts.
Chad Juliano
21

En su ansible.cfgarchivo necesita agregar la siguiente línea:

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

También puede agregar esas opciones en su equipo ~/.ssh/configen cada máquina desde la que lo ejecuta de la siguiente manera:

Host *
   StrictHostKeyChecking no
   UserKnownHostsFile=/dev/null
Jiri Klouda
fuente
1
Esto debería funcionar. Además, mire el archivo ansible.cfg para obtener más configuraciones :)
Dawny33
+1 para la adición de Dawny, porque aquellos que usan Paramiko deberán usar ansible.cfg
Woodland Hunter
1
¿Hay una manera adecuada de configurar eso dentro del libro de jugadas? Lo intenté ansible_ssh_common_argsy ansible_ssh_extra_argsno anula lo que tengo en ansible.cfg. Tengo un ansible.cfg que uso para todo lo demás y prefiero anular esos parámetros para este tipo de libro de jugadas que copiarlo solo para hacer ese cambio.
Peter Turner
3
No puedo hablar con esas variables, Peter, pero podrías poner un ansible.cfg modificado en el directorio con este libro de jugadas, y tendrá prioridad.
Woodland Hunter
1
UserKnownHostsFile = / dev / null rompa completamente la seguridad ssh
mmv-ru