当Ansible尝试使用私钥通过ssh连接到计算机时,我收到“无法通过ssh连接到主机”错误

时间:2018-08-09 12:13:56

标签: ansible

我正在尝试使用Ansible设置计算机。我必须使用私钥而不是密码通过ssh连接到它。

这是我的stock.txt文件的内容:

target ansible_host=<ip_address> ansible_ssh_private_key_file=~/.ssh/<private_key_name>.pem

这是我的playbook.yaml文件的内容:

-
  name: Playbook name
  hosts: target
  tasks:
   <task_list>

当我执行命令ansible-playbook <playbook_name>.yaml -i inventory.txt时,出现以下错误:

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

我还尝试执行以下命令:ansible-playbook <playbook_name>.yaml --private-key=~/.ssh/<private_key_name>.pem -i inventory.txt,在ansible_ssh_private_key_file文件中没有inventory.txt属性。

注意:我可以使用命令 ssh -i <private_key_name>.pem <username>@<ip_address>连接到计算机。

如何解决此问题?

1 个答案:

答案 0 :(得分:1)

我怀疑您正在以其他用户身份进行连接。在上面的示例中,您在ssh检查期间使用了<user>@<host>,但没有配置ansible_user=...字段。尝试以这种方式在主机文件中提供用户名。