如何通过 VPN 通过 SSH 连接到在虚拟机上运行的远程服务器?

如何通过 VPN 通过 SSH 连接到在虚拟机上运行的远程服务器?

我有一个连接到 VPN 的 Ubuntu VM(使用 Ubuntu 上的 OpenConnect),并且我想通过 Ubuntu 从我的 OS X 主机 SSH 到 VPN:

(osx_host)  --ssh-->  (ubuntu_vm)  --ssh-->  (remote_server_on_vpn)

我试过使用SSH 端口转发使用下面的命令将 Ubuntu 的端口 9922 转发到远程服务器的端口 22,这样通过 SSH 到 Ubuntu 的端口 9922 就可以连接到远程服务器,但我得到了意想不到的结果。

试验 1

osx_host$ ssh -R 9922:remote_server_on_vpn:22 ubuntu_vm
osx_host$ ssh localhost -p 9922

试验 2

ubuntu_vm$ ssh -L 9922:remote_server_on_vpn:22 localhost
osx_host$ ssh ubuntu_vm -p 9922

但这些只会打开 Ubuntu 的 shell 而不是远程服务器。

试验 3

ubuntu_vm$ ssh -D localhost:9922 remote_server_on_vpn
osx_host$ ssh ubuntu_vm -p 9922

但到端口 9922 的连接超时。我已经验证了我的/etc/ssh/sshd_config包含AllowTcpForwarding yes并重新启动。我做错了什么?

答案1

命令应该是

osx_host$ ssh -fNL 9922:remote_server_on_vpn:22 ubuntu_vm
osx_host$ ssh localhost -p 9922

记得结束现有的连接。

相关内容