現象
ansibleでvagrantで立てているvmにsshが繋がらない。
➜ ansible git:(develop) ✗ ansible all -i hosts/local -m ping 192.168.99.100 | UNREACHABLE! => { "changed": false, "msg": "Failed to connect to the host via ssh: vagrant@192.168.99.100: Permission denied (publickey,gssapi-keyex,gssapi-with-mic).\r\n", "unreachable": true }
➜ clas.style git:(develop) ✗ vagrant ssh Last login: Mon Nov 12 22:48:32 2018 from 192.168.99.1 __| __|_ ) _| ( / Amazon Linux 2 AMI ___|\___|___| https://aws.amazon.com/amazon-linux-2/ local vagrant@192.168.99.100 ~$
~/.ssh/configは設定済み
Host aaa HostName 192.168.99.100 User vagrant Port 22 UserKnownHostsFile /dev/null StrictHostKeyChecking no PasswordAuthentication no IdentityFile /Users/xxx/.vagrant.d/private_key IdentitiesOnly yes LogLevel FATAL
対応策
➜ ansible git:(develop) ✗ ansible all -i hosts/local -m ping --private-key=/Users/xxx/.vagrant.d/private_key 192.168.99.100 | SUCCESS => { "changed": false, "ping": "pong" }
なぜかprivate_keyを直接指定するとうまくいく。 詳しいところはよくわからない。