小ネタです。表題の通りですけど、エラーが出ました。
ちょうど他のサーバにSSHするときにも同じエラーが出ていました。
通常のSSHでは、.ssh/configの中でIdentitiedOnly yes
を設定すれば、問題なく接続できるようになりました。
そして、ansible-playbookを実行しようとしたら、同じようなエラーが…。
TASK [Gathering Facts] *********************************************************************************************************************************************************************************************************************** fatal: [vagrant]: UNREACHABLE! => {"changed": false, "msg": "Failed to connect to the host via ssh: Received disconnect from 127.0.0.1 port 2222:2: Too many authentication failures\r\nDisconnected from 127.0.0.1 port 2222", " unreachable": true} PLAY RECAP *********************************************************************************************************************************************************************************************************************************** vagrant : ok=0 changed=0 unreachable=1 failed=0 skipped=0 rescued=0 ignored=0
インベントリではどうやってIdentitiedOnlyを指定するんだ?エラーメッセージでググったら、即出てきました。
Ansible SSH too many authentication failures · GitHub
ansible_ssh_extra_args="-o IdentitiesOnly=yes"
を追加します。
[app] vagrant ansible_host=127.0.0.1 ansible_port=2222 ansible_user=vagrant ansible_ssh_private_key_file=/Users/*******/sources/github.com/********/ansible-project/.vagrant/machines/default/virtualbox/private_key ansible_ssh_extra_args="-o IdentitiesOnly=yes"
これで問題なくansible-playbookを実行できました👏