1
resposta

[Dúvida] Ansible não consegue conectar a via ssh

Eu consigo conectar normalmente via ssh e usando a chave
Ansible não consegue conectar a via ssh

1 resposta

Bom dia! O erro importante é este

ssh_askpass: exec(/usr/bin/ssh-askpass): No such file or directory
Host key verification failed.

Isso indica duas coisas:

  1. O Ansible está tentando usar ssh-askpass
  2. A verificação da chave do host (known_hosts) falhou

Mesmo você passando --private-key, o Ansible ainda usa o SSH do sistema por baixo, e ele respeita as regras normais de host key verification.


Por que funciona no ssh manual e falha no Ansible?

Normalmente acontece por um desses motivos:

Você aceitou a chave do host usando outro usuário ou outro caminho

Quando você faz:

ssh ubuntu@52.38.99.188

a chave do host é salva em:

~/.ssh/known_hosts

Mas o Ansible pode estar rodando:

  • com outro usuário
  • ou com sudo
  • ou em um contexto onde esse known_hosts não existe

Resultado: o SSH usado pelo Ansible não encontra a chave aceita e falha.

O Ansible tenta pedir confirmação, mas não consegue

Quando a chave do host não é conhecida, o SSH tenta perguntar:

Are you sure you want to continue connecting?

Só que:

  • o Ansible roda de forma não interativa
  • ele tenta usar ssh-askpass
  • o binário não existe → erro

Como resolver

Opção 1 Desabilitar verificação de host (mais comum em labs)

Crie ou edite o arquivo ansible.cfg no projeto:

[defaults]
host_key_checking = False

Ou exporte a variável:

export ANSIBLE_HOST_KEY_CHECKING=False

Para curso/lab isso é totalmente aceitável.

Opção 2 Aceitar a chave manualmente do jeito “certo”

Rode:

ssh -i iac.pem ubuntu@52.38.99.188

Confirme o yes usando exatamente o mesmo usuário, chave e máquina onde você executa o Ansible.

Depois disso, rode o playbook de novo.

Sobre o warning de caracteres inválidos

Invalid characters were found in group names

Isso costuma ser:

  • grupo com hífen
  • espaço
  • caractere especial

Não quebra a execução agora, mas é bom ajustar depois.