luq*_*o33 15 ssh vagrant ansible
通常,您可以使用ssh进入Vagrant管理的VM vagrant ssh
.有两种选择:
insecure_private_key
Vagrant生成的身份验证. config.ssh.forward_agent
的设置为true
,并正确配置VM我使用第二个选项.当我跑步时vagrant ssh
,我用我的自定义私钥进入机器.
现在我需要让Ansible SSH进入我的Vagrant机器,我不想用Vagrantfile
它.
所以我执行了:
ansible-playbook -i hosts/development --private-key=~/.ssh/id_rsa -u vagrant dev.yml
我有这个错误返回:
致命:[192.168.50.5] => SSH错误:权限被拒绝(publickey).同时连接到192.168.50.5:22
该hosts/inventory
文件仅包含我的Vagrant VM的IP(192.168.50.5).
我不知道为什么Ansible不能进入虚拟机.它使用与执行时完全相同的user(vagrant
)和key(id_rsa
)vagrant ssh
.
但是,vagrant ssh
上面的内容不会运行时没有问题.
任何建议将不胜感激.
Mik*_*e D 25
问题可能在于您的hosts/inventory
文件.您需要在其中为Ansible添加正确的连接配置,保存并重新运行.
192.168.50.5 ansible_ssh_port=22 ansible_ssh_user=vagrant ansible_ssh_private_key_file=~/.ssh/id_rsa
Run Code Online (Sandbox Code Playgroud)
如果您没有使用端口22
,请相应地调整ansible_ssh_port
hosts文件.
你也可能没有在Vagrant中设置你的pubkey,因此这也行不通.要测试这个,请运行:
vagrant ssh-config | grep IdentityFile
# result should be your private key and not
# .vagrant/machines/default/virtualbox/private_key
Run Code Online (Sandbox Code Playgroud)
如果您尚未pubkey
加入Vagrant虚拟机,则需要在尝试使用私钥之前添加该虚拟机.
参考:http://docs.ansible.com/ansible/intro_inventory.html#list-of-behavioral-inventory-parameters
参考:https://docs.vagrantup.com/v2/cli/ssh_config.html