Ansible de onde vêm as configurações SSH do PreferredAuthentications?

Ansible de onde vêm as configurações SSH do PreferredAuthentications?

Estou executando um manual padrão do ansible (v2.3.1) usando configurações de nome de usuário e senha SSH. Ao usar a configuração '-vvvv', posso ver esses comandos SSH sendo gerados

EXEC ssh -C -o ControlMaster=auto -o ControlPersist=60s 
-o StrictHostKeyChecking=no -o Port=2222 
-o KbdInteractiveAuthentication=no 
-o PreferredAuthentications=gssapi-with-mic,gssapi-keyex,hostbased,publickey 
-o PasswordAuthentication=no -o User=dc_user -o ConnectTimeout=10

No caso acima, de onde estão sendo extraídas as configurações 'PreferredAuthentications=gssapi-with-mic,gssapi-keyex,hostbased,publickey'. Acredito que venham das configurações de SSH do cliente, mas isso está correto?

Entendo que posso substituir os argumentos ssh definindo isso em meu 'ansaible.cfg'

[ssh_connection]
scp_if_ssh=True
ssh_args = -o ControlMaster=auto -o ControlPersist=60s -o PreferredAuthentications=publickey

Alguém pode me explicar isso? Obrigado

Responder1

Estou observando que -o PreferredAuthentications=gssapi-with-mic,gssapi-keyex,hostbased,publickeyestá codificado noCódigo fonte

Se você substituir ssh_args, ansible.cfgserá -o PreferredAuthentications=publickeyadicionado à linha de comando ssh, mas isso não substituirá-o PreferredAuthentications=gssapi-with-mic,gssapi-keyex,hostbased,publickey

Exemplo:

$ grep ssh_args /etc/ansible/ansible.cfg 
#ssh_args = -C -o ControlMaster=auto -o ControlPersist=60s
ssh_args = -o ControlMaster=auto -o ControlPersist=60s -o     PreferredAuthentications=publickey
$ ansible rhel7a -m ping -vvvv |grep EXEC
<rhel7a> SSH: EXEC ssh -vvv -o ControlMaster=auto -o ControlPersist=60s -o PreferredAuthentications=publickey -o KbdInteractiveAuthentication=no -o PreferredAuthentications=gssapi-with-mic,gssapi-keyex,hostbased,publickey -o PasswordAuthentication=no -o User=vagrant -o ConnectTimeout=10 -o ControlPath=/home/user/.ansible/cp/13dd447a86 rhel7a '/bin/sh -c '"'"'echo ~ && sleep 0'"'"''

informação relacionada