とろろこんぶろぐ

かけだしR&Dフロントエンジニアの小言

ansibleでsshが繋がらない

現象

ansibleでvagrantで立てているvmsshが繋がらない。

➜  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
} 

vagrant sshはうまくいく

➜  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を直接指定するとうまくいく。 詳しいところはよくわからない。