Ansible 无法使用 vagrant insecure public 密钥 ping 我的 vagrant box
Ansible can't ping my vagrant box with the vagrant insecure public key
我在 osx 上将 Ansible 2.4.1.0 和 Vagrant 2.0.1 与 VirtualBox 一起使用,尽管我的 vagrant box 的配置在 ansible 上运行良好,但当我尝试 ping 时出现无法访问的错误:
➜ ansible all -m ping
vagrant_django | UNREACHABLE! => {
"changed": false,
"msg": "Failed to connect to the host via ssh: Permission denied (publickey,password).\r\n",
"unreachable": true
}
针对类似问题提供的解决方案对我不起作用(比如将 vagrant insecure pub key 添加到我的 ansible 配置中)。我只是不能让它与流浪者不安全public密钥一起工作。
Fwiw,这是我的 ansible.cfg 文件:
[defaults]
host_key_checking = False
inventory = ./ansible/hosts
roles_path = ./ansible/roles
private_key_file = ~/.vagrant.d/insecure_private_key
这是我的 ansible/hosts 文件(ansible 清单):
[vagrantboxes]
vagrant_vm ansible_ssh_user=vagrant ansible_ssh_host=192.168.10.100 ansible_ssh_port=22 ansible_ssh_private_key_file=~/.vagrant.d/insecure_private_key
所做的工作是使用我自己的 SSH public 密钥。当我将它添加到我的 vagrant box 上的 authorized_keys 时,我可以 ansible ping:
➜ ansible all -m ping
vagrant_django | SUCCESS => {
"changed": false,
"failed": false,
"ping": "pong"
}
我也无法通过 ssh 连接,所以这似乎是潜在的问题。通过将我自己的 pub 密钥添加到 authorized_hosts 中的 vagrant box 来解决这个问题。
我很想知道为什么它不适用于 vagrant 不安全密钥。有人知道吗?
PS:澄清一下,虽然根本原因与相似,但症状和上下文不同。我可以为我的盒子提供 ansible,但不能 ansible ping 它。这证明了另一个问题恕我直言。
I'd love to know why it doesn't work with the vagrant insecure key. Does anyone know?
因为 Vagrant 不安全密钥仅用于与盒子的初始连接。默认情况下,Vagrant 将其替换为新生成的密钥,您可以在项目目录下的 .vagrant/machines/<machine_name>/virtualbox/private_key
中找到它。
如果您在 Vagrantfile 中使用 Ansible provisioner,您还会在 .vagrant/provisioners/ansible/inventory/vagrant_ansible_inventory
中找到自动生成的 Ansible 清单,因此您无需创建自己的清单。
我在 osx 上将 Ansible 2.4.1.0 和 Vagrant 2.0.1 与 VirtualBox 一起使用,尽管我的 vagrant box 的配置在 ansible 上运行良好,但当我尝试 ping 时出现无法访问的错误:
➜ ansible all -m ping
vagrant_django | UNREACHABLE! => {
"changed": false,
"msg": "Failed to connect to the host via ssh: Permission denied (publickey,password).\r\n",
"unreachable": true
}
针对类似问题提供的解决方案对我不起作用(比如将 vagrant insecure pub key 添加到我的 ansible 配置中)。我只是不能让它与流浪者不安全public密钥一起工作。
Fwiw,这是我的 ansible.cfg 文件:
[defaults]
host_key_checking = False
inventory = ./ansible/hosts
roles_path = ./ansible/roles
private_key_file = ~/.vagrant.d/insecure_private_key
这是我的 ansible/hosts 文件(ansible 清单):
[vagrantboxes]
vagrant_vm ansible_ssh_user=vagrant ansible_ssh_host=192.168.10.100 ansible_ssh_port=22 ansible_ssh_private_key_file=~/.vagrant.d/insecure_private_key
所做的工作是使用我自己的 SSH public 密钥。当我将它添加到我的 vagrant box 上的 authorized_keys 时,我可以 ansible ping:
➜ ansible all -m ping
vagrant_django | SUCCESS => {
"changed": false,
"failed": false,
"ping": "pong"
}
我也无法通过 ssh 连接,所以这似乎是潜在的问题。通过将我自己的 pub 密钥添加到 authorized_hosts 中的 vagrant box 来解决这个问题。
我很想知道为什么它不适用于 vagrant 不安全密钥。有人知道吗?
PS:澄清一下,虽然根本原因与
I'd love to know why it doesn't work with the vagrant insecure key. Does anyone know?
因为 Vagrant 不安全密钥仅用于与盒子的初始连接。默认情况下,Vagrant 将其替换为新生成的密钥,您可以在项目目录下的 .vagrant/machines/<machine_name>/virtualbox/private_key
中找到它。
如果您在 Vagrantfile 中使用 Ansible provisioner,您还会在 .vagrant/provisioners/ansible/inventory/vagrant_ansible_inventory
中找到自动生成的 Ansible 清单,因此您无需创建自己的清单。