我对vagrant ssh
有一个奇怪的问题。类似的问题,例如Vagrant asks for password after SSH key update,(vagrant & ssh) require password或Vagrant 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
有效。
答案 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
不再要求输入密码。