我有一个奇怪的问题vagrant ssh
。类似的问题,例如Vagrant 在 SSH 密钥更新后询问密码,或(vagrant & ssh) 需要密码,或Vagrant ssh 身份验证失败对我没有帮助。
所以,剧情。
我有一台运行 Ubuntu 14.04.3 的虚拟机。所有设置均根据本文进行:https ://blog.engineyard.com/2014/building-a-vagrant-box 。
注意:我可以使用带有 vagrant 的 insecure_private_key(转换为 *.ppk)的 Putty SSH 到此虚拟机,该密钥位于“C:/Users/Gino/.vagrant.d/insecure_private_key。密码不会被提示。
然后我打包这个虚拟机,用这个包初始化 vagrant 并运行vagrant up
. 我得到“ Warning: Authentication failure. Retrying...
”错误。不过虽然我可以vagrant ssh
到这台机器,但它问我一个密码。如果我尝试ssh
使用 Putty 和必要的密钥(如第一段),它也会要求我输入密码。
我vagrant halt
编辑了这台机器,在 VirtualBox VM 的列表中找到它并手动运行它。之后,我尝试ssh
使用具有相同密钥的 Putty 登录这台机器并成功 - 我可以在没有任何密码的情况下登录。
的结果vagrant ssh-config
,如果需要:
h:\VagrantBoxes\main-server32>vagrant ssh-config
Host default
HostName 127.0.0.1
User vagrant
Port 2222
UserKnownHostsFile /dev/null
StrictHostKeyChecking no
PasswordAuthentication no
IdentityFile "C:/Users/Gino/.vagrant.d/insecure_private_key"
IdentitiesOnly yes
LogLevel FATAL
我的Vagrantfile
(它是自动生成的,几乎没有,只添加了评论中的建议行):
Vagrant.configure(2) do |config|
config.vm.box = "vagrant-main-server32"
config.ssh.insert_key = false
end
那么这里的奥秘是什么?为什么ssh
使用密钥在没有vagrant up
和失败的情况下工作并提示输入密码?
笔记。另一个有趣的事情:它仍然无法在
vagrant up
. 但是如果在出现“身份验证失败”的错误时我通过virtualbox登录vm,它也可以成功登录窗口vagrant up
。然后vagrant ssh
工作。