IDENTIFICATION HAS CHANGED!
Opa pessoal tudo certo!?
Ao tentar rodar uma plabook em uma máquina em meu laboratório me deparei com a seguinte mensagem:
sampaio@vagrant:$ ansible-playbook playbook.yml
PLAY [Change IP] *************************************
TASK [Gathering Facts] *******************************
fatal: [192.168.144.3]: UNREACHABLE! => {"changed": false, "msg": "Failed to connect to the
host via ssh: @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\r\n@
WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @\r\n@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\r\nIT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING
NASTY!\r \nSomeone could be eavesdropping on you right now (man-in-the-middle attack)
!\r\nIt is also possible that a host key has just been changed.\r\nThe fingerprint
for the ECDSA key sent by the remote host is\nSHA256:CfsNcF2HkZmT7jxN5U96Flb+slzHmoslMOBOmPDD4uw.
r\nPlease contact your system administrator.\r\nHost key verification failed.", "unreachable": true}
Importante ressaltar que por ser uma máquina de lab constantemente está sendo destruída para realizar testes. Neste caso havia acabado de subir a máquina novamente com Vagrant.
O erro trata-se da identificação SSH, sempre que conectamos a uma nova máquina temos o fingerprint salvo por default no diretório ~/.ssh/known_hosts.
Neste caso em especifico o host com IP 192.168.144.3 está com outro fingerprint, para solucionar basta apagar o fingerprint que consta neste arquivo.
Para tal, basta usar o comando:
ssh-keygen -f ~/.ssh/known_hosts -R 192.168.144.3
O comando “ssh-keygen” nos auxilia a gerenciar as chaves ssh, com as opções “-f” vamos indicar a utilização de um arquivo(filename) e com a opção “-R” estamos solicitando a remoção da fingerprint deste host em especifico.
Ao rodar novamente o comando temos:
sampaio@vagrant:$ ansible-playbook playbook.yml
PLAY [Change IP] *************************************
TASK [Gathering Facts] *******************************
ECDSA key fingerprint is SHA256:CfsNcF2HkZmT7jxN5U96Flb+slzHmoslMOBOmPDD4uw.
Are you sure you want to continue connecting (yes/no/[fingerprint])? ok: [192.168.144.3]
Neste caso eu digito “yes” para criação de uma nova fingerprint no arquivo ~/.ssh/known_hosts e agora tenho sucesso ao tentar conectar.
sampaio@vagrant:$ ansible-playbook playbook.yml
PLAY [Change IP] *************************************
TASK [Gathering Facts] *******************************
ok: [192.168.144.3]
PLAY RECAP *******************************************
192.168.144.3 : ok=1 changed=0 unreachable=0 failed=1 skipped=0 rescued=0 ignored=0