【发布时间】:2013-10-12 19:37:14
【问题描述】:
我设置 vagrant 在主机操作系统上运行 vm。我想做的是能够从其他机器直接 ssh 到 vagrant vm(即,我不应该先 ssh 到主机,然后再 vagrant ssh 等进入 vagrant vm)。
目前,我可以使用ssh vagrant@127.0.0.1 -p 2222 ssh 不使用主机操作系统中的 vagrant ssh。但是,如果我运行相同的命令(将 127.0.0.1 替换为主机的 ip 地址),我会得到“ssh 连接到主机 XXXXX 端口 2222:连接被拒绝。”
我尝试将自己的端口转发规则添加到 vagrant:
config.vm.network :forwarded_port, guest: 22, host: 2222
但这不允许来自主机或网络中任何其他机器的 ssh 连接。此外,我在 vagrant 文档中使用了 config.ssh 一段时间。我认为这些参数中的大多数都指定了 vagrant vm 在哪个端口上运行 ssh。
我真的不认为这应该那么困难。有谁知道我可能做错了什么,或者我应该做些什么来从远程服务器 ssh 进入一个流浪虚拟机?
【问题讨论】:
-
该端口在防火墙中打开了吗?
-
是的。我可以使用我编写的示例程序来绑定和收听它,并从上面的其他机器接收消息。
-
我能够通过使用不同于 2222 的端口号使其工作。例如,这适用于我:
config.vm.network :private_network, ip: "192.168.0.2"config.vm.network :forwarded_port, guest: 22, host: 2022 -
我不得不更改 VirtualBox 以使用 Bridged 而不是 Nat。然后我在guest上找到了带有
ifconfig的内部ip。之后ssh-copy-id从远程到vagrant@_ip_from_ifconfig_之后我可以在没有密码的情况下登录。 -
@dmarr - 你能否提供更多关于你的答案的细节?我真的不明白你做了什么来使它工作。谢谢