无法通过 SSH 连接到 Vagrant VM(不使用 vagrant ssh)第 2 部分

mbi*_*ras 2 linux ssh vagrant

这是先前问题的后续问题。我使用了相同的 Vagrantfile,但已经注释掉了我认为没有必要的两行。

我试图在不使用vagrant ssh. 下面是我的 Vagrantfile 和 ssh 配置信息:

流浪文件:

Vagrant.configure(2) do |config|

  config.vm.provider "virtualbox" do |v|
    v.memory = 6144
    v.cpus = 2
    v.name = "mb_vagrant"
  end

  config.vm.box = "ubuntu/trusty64"

  config.vm.network :private_network, ip: "192.168.33.10"

  config.ssh.forward_agent = true

  # config.vm.provision :shell, path: "bootstrap.sh"
  # config.vm.network :forwarded_port, host: 8001, guest: 8001

end
Run Code Online (Sandbox Code Playgroud)

输出vagrant ssh-config

Host default
  HostName 127.0.0.1
  User vagrant
  Port 2222
  UserKnownHostsFile /dev/null
  StrictHostKeyChecking no
  PasswordAuthentication no
  IdentityFile "/Users/mbigras/Google Drive/tmp/chef-repo/.vagrant/machines/default/virtualbox/private_key"
  IdentitiesOnly yes
  LogLevel FATAL
  ForwardAgent yes
Run Code Online (Sandbox Code Playgroud)

我已经尝试ssh使用以下命令进入我的机器:

$ ssh -i "/Users/mbigras/Google Drive/tmp/chef-repo/.vagrant/machines/default/virtualbox/private_key" -p 2222 vagrant@192.168.33.10
ssh: connect to host 192.168.33.10 port 2222: Connection refused
Run Code Online (Sandbox Code Playgroud)

另外,根据另一个答案中描述的解决方案,我~/.ssh/known_hosts在尝试连接之前尝试删除;但是,它也不起作用:

$ rm ~/.ssh/known_hosts
$ ssh -i "/Users/mbigras/Google Drive/tmp/chef-repo/.vagrant/machines/default/virtualbox/private_key" -p 2222 vagrant@192.168.33.10
ssh: connect to host 192.168.33.10 port 2222: Connection refused
Run Code Online (Sandbox Code Playgroud)

我在这里缺少什么?

Gon*_*heu 6

ssh 服务绑定到主机(即:127.0.0.1)的端口2222,但在 VM(来宾机器)中仍在侦听端口 22(作为默认端口)。因此,您应该连接到192.168.33.10上的端口22127.0.0.1上的2222端口。IE:

$ ssh -i "<vagranfile-path>/.vagrant/machines/default/virtualbox/private_key" \
-p 22 vagrant@192.168.33.10
Run Code Online (Sandbox Code Playgroud)

或者

$ ssh -i "<vagranfile-path>/.vagrant/machines/default/virtualbox/private_key" \
-p 2222 vagrant@127.0.0.1
Run Code Online (Sandbox Code Playgroud)

此外,不需要删除~/.ssh/known_hosts文件。添加以下选项将避免主机指纹检查:-o UserKnownHostsFile=/dev/null