Answers:
您要它侦听本地端口22并将连接转发到远程系统的端口8090。您不能这样做,因为本地SSH服务器已经使用了本地端口22。
我认为您正在寻找的是远程转发。替换-L 22:localhost:8090
为-R 8090:localhost:22
会告诉远程主机侦听端口8090并将请求转发到SSH服务器。
如果您要保持连接的运行状态,以便以后可以从远程站点进入,那么您将要通过添加相关选项(-o TCPKeepAlive=yes
或-o ServerAliveInterval=30
)来确保连接不会由于不活动而超时。
因此,您将得到类似以下内容的结果:
ssh -N user@my_server -R 8090:localhost:22 -o ServerAliveInterval=30
另外,如果您和服务器之间的网络跳线之一在任何时候都断开了,尽管您指定了任何KeepAlive选项,连接也会断开,因此您可能希望将此命令添加到inittab中,或者查看daemontools软件包或发行版的等价的,因此它总是在启动时启动,并在由于某种原因退出时重新启动,然后系统关闭(或者您可以从无限循环的shell脚本中运行它,但init或daemontools是更干净的解决方案)。
GatewayPorts Yes
到我的sshd_config帮助我向公众开放了该端口。