0

我想通过两个 vagrant 文件创建两台 vagrant 机器,并能够通过 PuTTY ssh 进入它们。

我认为这可能就像通过端口 2223 而不是 2222 端口转发其中一个端口并使用两个 PuTTY 连接一样简单。

尽管我的 vagrant ssh-config 看起来像这样:

HostName 127.0.0.1
User vagrant
Port 2223
UserKnownHostsFile /dev/null
StrictHostKeyChecking no
PasswordAuthentication no
IdentityFile "XXXXXXXXXXXXXXXXXXXXXXXXXXX"
IdentitiesOnly yes
LogLevel FATAL

...我似乎能够通过端口 2222 上的 PuTTY 进入它,我希望保留它以访问我尚未设置的另一个实例。我是 vagrant 的新手,可能会犯一个菜鸟错误。帮助表示赞赏。

4

2 回答 2

2

根据 Vagrant Base Box 规范,默认的网络模式是 NAT 并且启用了 SSH 的端口转发(guest 22 => host 2222)。

您所做的,更改来宾中的 sshd_config 文件将不起作用,因为这只会将来宾中的 SSH 端口更改为 2223,而不是主机。

对于第二个 vagrant box,您需要执行以下操作:

  1. 获取名称或 UUIDVBoxManage list vms
  2. 用于VBoxManage showvminfo VM_Name获取端口转发规则列表
  3. 删除其默认的 guestsh NAT 端口转发规则
  4. 添加一个新的端口转发规则来做guest 22 => host 2223

例如:

默认情况下,该规则名为 ssh

NIC 1 Rule(1):   name = ssh, protocol = tcp, host ip = 127.0.0.1, host port = 2222, guest ip = , guest port = 22

删除它

VBoxManage modifyvm "VM_Name" --natpf1 delete "ssh"

添加新规则

VBoxManage modifyvm base_box --natpf1 "guestssh, tcp,,2223,,22"

还没做完!!!

不要vagrant up用来启动这个虚拟机,因为它会重新添加 ssh 规则。

您可以使用 VirtualBox GUI 或VBoxManage controlvm启动它。并连接到它使用ssh -p 2223 vagrant@localhost,密码是vagrant。您也可以使用不安全的密钥对进行公钥身份验证,但这并没有多大意义。

注意:更改、添加和删除端口转发规则无论如何都可以使用 VirtualBox GUI 来完成,如果它对您来说更容易的话。

于 2013-07-31T21:56:10.297 回答
1

您可以通过将其放入您的 vagrantfile 来设置您喜欢的任何端口:

config.vm.network "forwarded_port", guest: 22, host: 2223

用您选择的端口替换 2223 - 显然,每个 VM 都不同。

请注意,这是对标准 2222 端口转发的补充,仍将为每个 VM 映射。其中一个“获胜”并回答 2222 以及您设置的任何自定义端口。

接受的答案中的程序可能很好用,但似乎有点复杂。

于 2014-04-07T00:57:37.613 回答