我是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
但这并不能解决我原来的问题
答案 0 :(得分:0)
经过了将近4天的努力,我终于可以正常工作了……我的硬盘坏了,所以我不得不更换它并重新安装Windows和我所有的东西。我做的第一件事是再次尝试vagrant和virtualbox。它在第一次尝试时就起作用了。我怀疑这有什么问题 VirtualBox和网络(意味着我的物理接口)。不幸的是,这就是我能说的,因为我从来没有深究这个问题。如果像我一样,您尝试了所有操作,但仍然遇到与我相同的问题,则应查看一下您的网络。我不是要告诉您重新安装Windows ...那会是疯狂的...但是某些地方坏了,现在一切都按预期工作了。奇怪但真实!
答案 1 :(得分:0)
我对Vagrant(Homestead)的解决方案摘要挂在“ SSH身份验证方法:私钥”上:
vagrant box update
(对我来说,是v2.2.5版)vagrant box add laravel/homestead
(对我来说,将宅基地升级到8.0.1)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)