Vagrant Ansible can';t用不安全的公钥ping我的流浪者盒子

Vagrant Ansible can';t用不安全的公钥ping我的流浪者盒子,vagrant,ansible,ansible-inventory,Vagrant,Ansible,Ansible Inventory,我将Ansible 2.4.1.0和Vagrant 2.0.1与osx上的VirtualBox一起使用,虽然我的Vagrant box的设置在Ansible上运行良好,但在尝试ping时,我遇到了一个无法到达的错误: ➜ ansible all -m ping vagrant_django | UNREACHABLE! => { "changed": false, "msg": "Failed to connect to the host via ssh: Permis

我将Ansible 2.4.1.0和Vagrant 2.0.1与osx上的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
}
在类似问题上提供的解决方案对我不起作用(比如在我的ansible配置中添加流浪的不安全的pub键)。我只是无法让它使用不安全的公钥

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目录):

所做的工作是使用我自己的SSH公钥。当我将其添加到我的流浪者箱上的授权密钥时,我可以:

➜  ansible all -m ping       
vagrant_django | SUCCESS => {
    "changed": false, 
    "failed": false, 
    "ping": "pong"
}
我也不能通过ssh连接,所以这似乎是潜在的问题。通过将我自己的pub密钥添加到授权的_主机中的vagrant框中,可以修复此问题

我想知道为什么它不能使用不安全的流浪钥匙。有人知道吗

PS:澄清一下,虽然根本原因与相似,但症状和背景是不同的。我可以为我的盒子提供ansible,但不能为它提供ansible。这就证明了另一个问题是正确的

我很想知道为什么流浪汉的钥匙不安全。有人知道吗

因为Vagrant不安全密钥仅用于与机箱的初始连接。默认情况下,Vagrant将其替换为新生成的密钥,您可以在项目目录下的
.Vagrant/machines//virtualbox/private_key
中找到该密钥

如果您在Vagrantfile中使用Ansible provisioner,则在
.vagrant/provisioners/Ansible/inventory/vagrant\u Ansible\u inventory
中还可以找到自动生成的Ansible inventory,因此您无需创建自己的Ansible provisioner

我很想知道为什么流浪汉的钥匙不安全。有人知道吗

因为Vagrant不安全密钥仅用于与机箱的初始连接。默认情况下,Vagrant将其替换为新生成的密钥,您可以在项目目录下的
.Vagrant/machines//virtualbox/private_key
中找到该密钥


如果您在Vagrantfile中使用Ansible provisioner,那么您也可以在
.vagrant/provisioners/Ansible/inventory/vagrant\u Ansible\u inventory
中找到自动生成的Ansible inventory,因此您无需创建自己的Ansible provisioner。

可能重复的可能重复的感谢!这确实是我错过的信息。我所需要做的就是将自动生成的库存包含在我的ansible.cfg中。我在这里的文档中也找到了它,一开始我忽略了这一点:我本可以通过使用“vagrant ssh-config”找到根本原因,谢谢!这确实是我错过的信息。我所需要做的就是将自动生成的库存包含在我的ansible.cfg中。在这里的文档中也找到了它,我一开始忽略了这一点:我本可以通过使用“vagrant ssh config”找到根本原因
➜  ansible all -m ping       
vagrant_django | SUCCESS => {
    "changed": false, 
    "failed": false, 
    "ping": "pong"
}