我有一个连接到 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
记得结束现有的连接。