かべぎわブログ

技術的なことについてかけたらいいな…

AnsibleでFailed to connect to the host via ssh: Permission denied (publickey).\r\nというエラーが表示されたときの対処法

Ansibileの勉強をしていたところ、以下のようなエラーが表示されてしまいました。

$ ansible -i test01_inventory.ini test_servers -m ping

localhost | UNREACHABLE! => {
    "changed": false,
    "msg": "Failed to connect to the host via ssh: Permission denied (publickey).\r\n",
    "unreachable": true
}

Ansibleではなくふつうにpingを実行したところ正常に実行できた。
なにかがおかしい…

解決策

調べてみたところ~/.ssh/配下の秘密鍵を利用して接続しに行こうとしている様子。

なので秘密鍵を利用して接続するようにコマンドを変更してみます。

$ ansible -i ansible/ansible_hosts test01_inventory.ini --private-key=./himitsu-Key.pem -u ec2-user -m ping

192.140.1.102 | SUCCESS => {
    "changed": false,
    "ping": "pong"
}

無事pingがとおりました。
private-key=./himitsu-Key.pem-u ec2-userで秘密鍵と接続ユーザを明示してあげたところうまくいきました。

Ansible実践ガイド

Ansible実践ガイド