Laravel Homestead启动认证错误

5

我在运行 Laravel Vagrant Homestead,决定对所有项目进行清理,并将我的主要项目文件夹的位置从桌面移动到 C:/,以保持更有条理性。但是当我启动虚拟机时,无法通过身份验证。

==> default: Checking if box 'laravel/homestead' is up to date...
==> default: Clearing any previously set forwarded ports...
==> default: Clearing any previously set network interfaces...
==> default: Preparing network interfaces based on configuration...
    default: Adapter 1: nat
    default: Adapter 2: hostonly
==> default: Forwarding ports...
    default: 80 => 8000 (adapter 1)
    default: 3306 => 33060 (adapter 1)
    default: 5432 => 54320 (adapter 1)
    default: 22 => 2222 (adapter 1)
==> default: Running 'pre-boot' VM customizations...
==> default: Booting VM...
==> default: Waiting for machine to boot. This may take a few minutes...
    default: SSH address: 127.0.0.1:2222
    default: SSH username: vagrant
    default: SSH auth method: private key
    default: Warning: Connection timeout. Retrying...
    default: Warning: Remote connection disconnect. Retrying...
    default: Warning: Authentication failure. Retrying...
    default: Warning: Authentication failure. Retrying...

我已经遵循了一些步骤并且检查了在Homestead.yaml中的ssh密钥路径,一切看起来都很正常。

我运行了vagrant ssh-config

$ vagrant ssh-config
Host default
  HostName 127.0.0.1
  User vagrant
  Port 2222
  UserKnownHostsFile /dev/null
  StrictHostKeyChecking no
  PasswordAuthentication no
  IdentityFile C:/Users/David/.vagrant.d/insecure_private_key
  IdentitiesOnly yes
  LogLevel FATAL

我曾尝试修改insecure_private_key以匹配我的私钥(在某个答案中看到),但没有成功。

这是我的Homestead.yaml文件(已修改以删除网站名称):

ip: "192.168.10.10"
memory: 2048
cpus: 1

authorize: C:/Users/David/.ssh/id_rsa.pub

keys:
    - C:/Users/David/.ssh/id_rsa

folders:
    - map: C:/Code/projects/website
      to: /home/vagrant/projects/website

sites:
    - map: website.app
      to: /home/vagrant/projects/website/public

variables:
    - key: APP_ENV
      value: local

我保证我的ssh密钥路径没有被修改,但是在VM上清理项目并将主代码文件夹移动到C:/并进行重新映射后,我开始遇到这个问题。


同样的问题在这里,确保通过BIOS启用CPU上的虚拟化。如果您没有VT-x兼容的CPU,则需要使用32位VM box,例如此链接中的VM box:https://github.com/antoniofrignani/laravel-homestead-settler-32要将默认box更改为32位box,您需要在scripts/homestead.rb文件中将“config.vm.box =“laravel/homestead””更改为“config.vm.box =“antoniofrignani/laravel-homestead-settler-32””。 - karansolo
2个回答

3
根据您的日志,虚拟机已经启动。只是Vagrant无法SSH连接。
很可能是您在虚拟机中搞乱了授权密钥(~./ssh/authorized_keys)。
请按照以下步骤操作:
1. 将Vagrant保持不变,打开另一个命令提示符。 2. 复制此网站上的密钥到剪贴板。 https://raw.githubusercontent.com/mitchellh/vagrant/master/keys/vagrant.pub 3. 使用putty进行SSH连接。 putty vagrant@127.0.0.1 -p 2222 4. 输入以下内容: echo "--从剪贴板粘贴--" > ./authorized_keys 5. 退出putty。 6. 输入Vagrant reload,注意它会检测到密钥不安全并自动注入新密钥。 7. 您的Vagrant现在应该已经启动。
希望对您有所帮助。

1
这是在长时间未使用homestead时发生的。
更新了该框: vagrant box add laravel/homestead 然后出现了上述问题。 最简单的方法是销毁homestead,然后再次启动它。您的配置将保持不变,因为它在~/.homestead/Homestead.yml中。
homestead destroy
homestead up

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接