无法通过 SSH 连接到 Vagrant 虚拟机

csi*_*csi 12 ssh configuration port-forwarding localhost vagrant

本地 Vagrant 机器安装在10.0.0.23主机名的IP 地址上lamp-vm

使用vagrant ssh命令,我可以正常连接并做我需要的一切。

这会产生错误

$ ssh vagrant@lamp-vm -v -v

debug1:连接到地址 10.0.0.23 端口 22:连接超时
ssh:连接到主机 lamp-vm 端口 22:连接超时

我的/etc/hosts文件包含10.0.0.23 lamp-vm.

我的 .ssh/config 文件看起来像

主机 lamp-vm
用户 vagrant
IdentityFile ~/.ssh/vagrant

我也尝试过使用和不使用 ssh 命令-i /path/to/.sh/identity_file

如何使用 SSH 连接到我的 Vagrant 虚拟机?

ste*_*ite 13

它很旧,但由于没有答案,我会提供一个。命令:

vagrant ssh
Run Code Online (Sandbox Code Playgroud)

是否相当于

ssh vagrant@localhost -p 2222 -i .vagrant/machines/default/virtualbox/private_key
Run Code Online (Sandbox Code Playgroud)

这是默认行为,如果您适当更改了某些更改命令。首先,Vagrant 将在您的来宾盒上创建 vagrant 用户,您将使用该用户进行 ssh。正如以前的人所说,默认情况下,它会将流量从主机上的 2222 端口转发到来宾上的 22 端口(当您使用 vagrant up 时,您会看到显示该消息)。最后 Vagrant 为 ssh 会话创建密钥,因此您不必这样做,因此您需要在通过 ssh 连接时提供公钥作为参数。


小智 8

我也遇到了这个问题,这是我的最终配置,它允许我从主机的任何地方通过 ssh 进入我的流浪机器。

流浪文件:

...
# Setting up private_network to have virtual host
config.vm.network :private_network, ip: "192.168.33.10"

# Enable ssh forward agent
config.ssh.forward_agent = true
...
Run Code Online (Sandbox Code Playgroud)

ssh 进入机器:

ssh vagrant@192.168.33.10
Run Code Online (Sandbox Code Playgroud)

系统将提示您输入密码(默认为 vagrant):

vagrant@192.168.33.28's password:
Run Code Online (Sandbox Code Playgroud)

繁荣,你在!

PS* 您也可以在主机的任何地方使用 scp:

scp /path/to/src/file vagrant@192.168.33.10:/path/to/destination/file
Run Code Online (Sandbox Code Playgroud)


Phi*_*igg 6

此行为是设计使然。

Vagrant 使用VirtualBox NAT 模式,这意味着使用端口转发。

您不能使用 NAT 模式直接通过 SSH 连接到您的 VM。

使用 'vagrant ssh' 意味着 vagrant 会为你做端口转发,所以你不必担心。我认为默认情况下它会在端口 2222 上连接到本地主机,但它也会尝试解决任何端口号冲突。

如果您需要通过 SSH 直接连接到您的 VM,请将 VM 切换到仅主机模式或桥接网络模式。


小智 6

我会将此添加为评论,但我目前没有足够的代表来这样做。我在此处编写了将 VM 设置为桥接模式的方法:

https://askubuntu.com/questions/116861/setting-up-a-network-between-a-host-and-guest-virtual-machine/116909#116909

希望这个对你有帮助!