恢复备份后Homestead出现身份验证错误
解决Homestead启动时的身份验证错误与权限警告问题
嘿,我来帮你搞定这个Homestead的身份验证问题,顺便把那个烦人的权限警告也一并解决!
先处理"Insecure world writable dir"权限警告
这个警告是因为你的/usr/local/bin目录权限设成了0777,系统判定这个权限过于开放、不安全。直接执行下面的命令修复权限:
sudo chmod 755 /usr/local/bin
把权限调整为所有者可读可写可执行,组和其他用户仅可读可执行,警告就会消失了。
核心问题:SSH身份验证失败
你替换VM目录并修改UUID后,本地的SSH密钥和VM里的授权列表不匹配了——Homestead默认使用~/.ssh/homestead这套密钥对,我们得重新让VM信任你的本地密钥,有两种实用方法:
方法1:重新生成Homestead密钥并同步(推荐)
- 先删除旧的Homestead密钥(如果存在的话):
rm ~/.ssh/homestead*
- 重新生成新的密钥对:
homestead make
这个命令会在~/.ssh目录下生成新的homestead(私钥)和homestead.pub(公钥)文件。
3. 启动VM时强制重新配置SSH:
homestead up --provision
--provision参数会让Homestead重新运行配置脚本,把新的公钥同步到VM的authorized_keys列表中,这样身份验证就能正常通过了。
方法2:手动复制公钥到VM
如果上面的方法没起效,你可以手动操作:
- 先查看Homestead的IP地址,打开配置文件确认:
cat ~/.homestead/Homestead.yaml
通常默认IP是192.168.10.10。
2. 用默认密码vagrant登录VM:
ssh vagrant@192.168.10.10
- 在本地终端执行命令,把本地公钥复制到VM的授权列表里:
cat ~/.ssh/homestead.pub | ssh vagrant@192.168.10.10 "cat >> ~/.ssh/authorized_keys"
退出VM后再执行homestead up,应该就能正常连接了。
额外提示:数据库恢复
因为你之前没备份数据库,现在VM恢复后如果数据丢失,可以试试这两个办法:
- 如果是Laravel项目,本地有迁移文件的话,登录VM后执行
php artisan migrate就能重建数据库结构。 - 要是之前有手动导出的SQL备份,登录VM后用
mysql -u 用户名 -p 数据库名 < 备份文件.sql导入数据。
内容的提问来源于stack exchange,提问作者JV88V
相关产品推荐
相关产品推荐

