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)
此行为是设计使然。
Vagrant 使用VirtualBox NAT 模式,这意味着使用端口转发。
您不能使用 NAT 模式直接通过 SSH 连接到您的 VM。
使用 'vagrant ssh' 意味着 vagrant 会为你做端口转发,所以你不必担心。我认为默认情况下它会在端口 2222 上连接到本地主机,但它也会尝试解决任何端口号冲突。
如果您需要通过 SSH 直接连接到您的 VM,请将 VM 切换到仅主机模式或桥接网络模式。