You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Windows11下Vagrant2.4.0 SSH权限拒绝与rsync同步错误求助

Vagrant权限拒绝问题解决(Windows 11 + Vagrant 2.4.0)

环境

  • Windows 11
  • Vagrant 2.4.0
  • 通过单Vagrantfile创建多台虚拟机,Vagrantfile代码:
Vagrant.configure("2") do |config|
  config.hostmanager.enabled = true 
  config.hostmanager.manage_host = true
  
### DB vm  ####
  config.vm.define "db01" do |db01|
    db01.vm.box = "eurolinux-vagrant/centos-stream-9"
    db01.vm.hostname = "db01"
    db01.vm.network "private_network", ip: "192.168.56.15"
    db01.vm.provider "virtualbox" do |vb|
     vb.memory = "600"
   end

  end
  
### Memcache vm  #### 
  config.vm.define "mc01" do |mc01|
    mc01.vm.box = "eurolinux-vagrant/centos-stream-9"
    mc01.vm.hostname = "mc01"
    mc01.vm.network "private_network", ip: "192.168.56.14"
    mc01.vm.provider "virtualbox" do |vb|
     vb.memory = "600"
   end
  end
  
### RabbitMQ vm  ####
  config.vm.define "rmq01" do |rmq01|
    rmq01.vm.box = "eurolinux-vagrant/centos-stream-9"
  rmq01.vm.hostname = "rmq01"
    rmq01.vm.network "private_network", ip: "192.168.56.13"
    rmq01.vm.provider "virtualbox" do |vb|
     vb.memory = "600"
   end
  end
  
### tomcat vm ###
   config.vm.define "app01" do |app01|
    app01.vm.box = "eurolinux-vagrant/centos-stream-9"
    app01.vm.hostname = "app01"
    app01.vm.network "private_network", ip: "192.168.56.12"
    app01.vm.provider "virtualbox" do |vb|
     vb.memory = "800"
   end
   end
   
  
### Nginx VM ###
  config.vm.define "web01" do |web01|
    web01.vm.box = "ubuntu/jammy64"
    web01.vm.hostname = "web01"
  web01.vm.network "private_network", ip: "192.168.56.11"
  web01.vm.provider "virtualbox" do |vb|
     vb.gui = true
     vb.memory = "800"
   end
end
  
end

问题现象

  • 执行vagrant up多次后虚拟机启动成功,但vagrant reload时出现rsync同步错误:

Error: vagrant@127.0.0.1: Permission denied (publickey,gssapi-keyex,gssapi-with-mic,password)

  • 执行vagrant ssh db01或vagrant ssh web01均提示权限拒绝
  • 已尝试设置set VAGRANT_PREFER_SYSTEM_BIN=0,问题未解决

解决步骤

1. 临时登录虚拟机

针对web01(已开启GUI)

直接通过VirtualBox图形界面操作:

  • 打开VirtualBox,选中web01虚拟机,点击启动
  • 登录界面输入默认账号:用户名vagrant,密码vagrant

针对无GUI的虚拟机(db01/mc01等)

临时开启图形界面登录:

  • 打开VirtualBox,选中目标虚拟机,点击「设置」
  • 切换到「显示」选项卡,勾选「启用图形控制器」,保存后重启虚拟机
  • 启动后用默认账号vagrant/vagrant登录

2. 修复SSH权限问题

登录虚拟机后,执行以下命令修正权限(Vagrant对SSH相关权限要求严格):

# 进入vagrant用户目录
cd ~
# 设置.ssh目录权限为700
chmod 700 .ssh
# 设置authorized_keys文件权限为600
chmod 600 .ssh/authorized_keys
# CentOS/Stream 9系统重启sshd服务
sudo systemctl restart sshd
# Ubuntu系统(如web01)执行此命令重启服务
sudo systemctl restart ssh

3. 解决rsync同步错误

rsync报错本质是SSH权限问题,修复上述权限后,重新执行vagrant reload即可正常同步。如果仍有问题,可尝试:

  • 检查本地Vagrant密钥权限:执行vagrant ssh-config查看私钥路径,在Git Bash中执行chmod 600 私钥路径设置权限为600
  • 临时禁用自动同步:在Vagrantfile中添加config.vm.synced_folder ".", "/vagrant", disabled: true,执行vagrant reload即可跳过同步

4. 终极重置方案(上述方法无效时)

执行以下命令重置虚拟机,会清除现有虚拟机并重新创建:

vagrant destroy -f
vagrant up

内容的提问来源于stack exchange,提问作者Ham Apke Hai Kon

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.08 01:49:57