VirtualBox 6.0.8,Vagrant 2.2.4挂起SSH身份验证方法:私钥

时间:2019-05-24 17:52:18

标签: vagrant virtualbox symfony4 homestead vagrantfile

我是Vagrant的新手。为了创建一个symfony项目,我正在尝试一个合适的开发环境,但是由于某种原因,我似乎无法正常工作。我所建造的机器总是卡在“ SSH身份验证方法:私钥”行。

在过去的两天里,我读了很多书,这个问题似乎是由于各种原因而发生的。我尝试了在satck溢出时进行的所有操作,但似乎无法找出导致我的设置失败的原因。

我在装有Windows 10的笔记本电脑上。我有VirtualBox 6.0.8和Vagrant 2.2.4。

我尝试了4个不同的盒子,其中包括我用Chef制作的一个盒子和一个可以正常工作的更通用的盒子(hashicorp / precise64)

所以我确信问题出在vagrantfile中。

我的BIOS中有处于活动状态的虚拟化……两次twice了。

我尝试使用git控制台,带有和没有管理员权限的Windows cmd以及powershell(以防万一),并得到了相同的结果。

ssh-config表示以下内容:

Host default
  HostName 127.0.0.1
  User vagrant
  Port 2200
  UserKnownHostsFile /dev/null
  StrictHostKeyChecking no
  PasswordAuthentication no
  IdentityFile "C:/Users/Utilisateur 1/.vagrant.d/insecure_private_key"
  IdentitiesOnly yes
  LogLevel FATAL

我在config部分的VirtualBox gui中检查了内容,并检查了电缆盒,根据我尝试使用的盒子,端口似乎已转发2200到guest 22或转发了2222到guest 22。远端总是匹配ssh-config

即使在gui配置中选中了该框,也尝试在流浪者文件中添加cableconnected1 ...

config.vm.provider "virtualbox" do |vb|
    vb.customize ["modifyvm", :id, "--cableconnected1", "on"]
end

我检查了insecure_private_key是否存在于正确的位置,并且确实存在C:/ Users / Utilisateur 1 / .vagrant.d / insecure_private_key

我尝试使用密码验证而不是ssh密钥,但是它也冻结了,因此我将其转回到使用ssk密钥。

我还尝试删除.ssh文件夹中的Knowhost文件,但是它什么也没做

每次我尝试使用新的东西 流浪者摧毁然后流浪者--provision

当它停滞时,我尝试在盒子内进行SSH ssh vagrant@127.0.0.1 -p 2200 -i〜/ .vagrant.d / insecure_private_key -o UserKnownHostsFile = / dev / null -o StrictHostKeyChecking =否-o PasswordAuthentication =否-o IdentitiesOnly = yes 但这给了我ssh_exchange_identification:阅读:对等连接重置

从VB gui启动VM会给我一个黑屏,并停在同一位置

我两次卸载VirtualBox和Vagrant,销毁并重新加载了15次以上,仍然遇到与我使用的盒子相同的错误。

如此票价我尝试了以下方框 hashicorp / precise64 便当/ubuntu-18.04 家园 还有另外1个我删除了,不记得这个名字了 所有这些杂物都可以正常工作。

我尝试在vagrantfile中添加port_forward,因为这似乎对其他遇到相同问题的成员有所帮助,但是我最终获得了2个端口转发,但仍然停滞在同一位置...

在我的Bento / Ubuntu-18.04 VM上放了一个日志--upbug&> vagrant.log https://transferxl.com/08vvkdTr6YJ5B2

我尝试将流浪文件简化到最低程度,但这没有帮助

此刻我的流浪文件看起来像这样:

Vagrant.configure("2") do |config|
    #berkshelf
    config.berkshelf.enabled = true

    #box
    config.vm.box = 'bento/ubuntu-18.04'
    config.vm.network :private_network, ip: '192.168.33.200'

    #network
    config.vm.network :forwarded_port, guest: 80, host: 8080

    #chef
    chef_repo_path = './chef'

    config.vm.provision :chef_solo do |chef|
        chef.cookbooks_path = 'chef/cookbooks'
        chef.data_bags_path = 'chef/data_bags'
        chef.environments_path = 'chef/environments'
        chef.roles_path = 'chef/roles'

        chef.environment = 'vagrant'
        chef.run_list = [
            'role[webserver]'
        ]
    end

end

-编辑

在下面的评论中,斯特罗姆对此表示怀疑,以防Windows用户名中的空间为issu,我在流浪汉中添加了以下内容

config.ssh.private_key_path = ["C:/Users/Utilisateur\ 1/.vagrant.d/insecure_private_key"]
config.ssh.insert_key = true

但是那又回来了

vagrant destroy
==> default: Loading Berkshelf datafile...
==> default: Sharing cookbooks with VM
==> default: Running cleanup tasks for 'berkshelf'...
    default: Are you sure you want to destroy the 'default' VM? [y/N] y
There are errors in the configuration of this machine. Please fix
the following errors and try again:

SSH:
* `private_key_path` file must exist: C:/Users/Utilisateur\ 1/.vagrant.d/insecure_private_key

所以我将其更改为

config.ssh.private_key_path = ["~/.vagrant.d/insecure_private_key"]
config.ssh.insert_key = true

但这并不能解决我原来的问题

3 个答案:

答案 0 :(得分:0)

经过了将近4天的努力,我终于可以正常工作了……我的硬盘坏了,所以我不得不更换它并重新安装Windows和我所有的东西。我做的第一件事是再次尝试vagrant和virtualbox。它在第一次尝试时就起作用了。我怀疑这有什么问题 VirtualBox和网络(意味着我的物理接口)。不幸的是,这就是我能说的,因为我从来没有深究这个问题。如果像我一样,您尝试了所有操作,但仍然遇到与我相同的问题,则应查看一下您的网络。我不是要告诉您重新安装Windows ...那会是疯狂的...但是某些地方坏了,现在一切都按预期工作了。奇怪但真实!

答案 1 :(得分:0)

我对Vagrant(Homestead)的解决方案摘要挂在“ SSH身份验证方法:私钥”上:

  1. vagrant box update(对我来说,是v2.2.5版)
  2. vagrant box add laravel/homestead(对我来说,将宅基地升级到8.0.1)
  3. VirtualBox GUI:停止Vagrant计算机,然后“删除”它及其所有文件。
  4. vagrant up --provision

详细说明

突然,并且没有进行任何已知的系统更改,我的Vagrant / Homestead盒上的SSH停止运行。一整天尝试了很多事情。 vagrant up将冻结在SSH auth method: private key上,而不会发生进一步的错误。

我无法vagrant destroy,因为脚本需要SSH,错误:Trigger run failed An error occurred in the underlying SSH library that Vagrant uses 因此,我不得不停下来,然后从virtualbox GUI中将其删除。

在执行上述步骤1-4之后,vagrant up启动消息给出了以下更有启发性的内容:

laravel: Warning: Connection aborted. Retrying...
laravel:
laravel: Vagrant insecure key detected. Vagrant will automatically replace
laravel: this with a newly generated keypair for better security.
laravel:
laravel: Inserting generated public key within guest...
laravel: Removing insecure key from the guest if it's present...
laravel: Key inserted! Disconnecting and reconnecting using new SSH key...

==> laravel:机器已启动并准备就绪!

尽管在我最初的故障排除过程中,我重新生成了密钥,但是它们可能存在一个问题,即新版本的Vagrant(具有更新的net-ssh)可能已检测到并已修复。

答案 2 :(得分:0)

Vagrant和Windows 10中的Windows Hypervisor平台功能似乎存在不兼容问题

我遇到了这个问题,这就是让Vagrant和WSL2并肩工作的方式

我具有以下环境:

  • 在BIOS中启用了硬件虚拟化

  • Windows 10(具有发布预览频道的内幕程序)

    -具有WSL 2版本10.0.19041内部版本19041的Windows 10

  • VirtualBox 6.1.12

    -已安装扩展包

  • 流浪汉2.2.9

这些是对我有用的设置:

  • Windows Hypervisor平台:关闭
  • 虚拟机平台:开
  • 适用于Linux的Windows子系统:打开

enter image description here