Vagrant ssh promtps for password

时间:2016-01-04 20:07:58

标签: vagrant vagrant-windows

我对vagrant ssh有一个奇怪的问题。类似的问题,例如Vagrant asks for password after SSH key update(vagrant & ssh) require passwordVagrant ssh authentication failure对我没有帮助。

所以,情节。

我有一台运行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。密码不会被提示。

然后我用这个包打包了这个虚拟机,init vagrant并运行vagrant up。我收到了“Warning: Authentication failure. Retrying...”错误。但是我可以vagrant ssh对这台机器,但它问了我一个密码。如果我使用必要的密钥(如第一段中所述)使用Putty尝试ssh,它也会要求我输入密码。

vagrant halt编辑了这台机器,在VirtualBox VM的列表中找到它并手动运行它。之后我尝试使用相同的密钥使用Putty ssh到这台机器并成功 - 我可以在没有任何密码的情况下登录。

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有效。

2 个答案:

答案 0 :(得分:3)

我在使用几个盒子时遇到了与vagrant 1.8.1相同的问题(即:geerlingguy / centos6)

我对这些盒子上的Vagrant 1.7没有任何问题。

经过一些研究,为什么我不能在那个框中ssh,看来盒子上的/ home / vagrant有755个权限,而ssh阻止用这些权限对用户进行身份验证

/ var / log / secure:

的摘录
  

Jan 28 15:11:36 server sshd [11721]:身份验证被拒绝:目录/ home / vagrant的所有权或模式不好

要修复那个虚拟机,我只需要更改权限/ home / vagrant(在它上面有一个chmod 700),现在我可以直接进入我的框

我不知道如何直接修复它我认为你应该直接修改你的盒子

希望这有帮助!

编辑:我认为它是来自主机的共享文件夹,但它的/ vagrant共享不是/ home / vagrant

答案 1 :(得分:0)

我在 ~/.ssh/config 的顶部有这个旧设置。

PubkeyAcceptedKeyTypes ssh-dss,ssh-rsa

删除后,vagrant ssh 不再要求输入密码。