是否可以将通过某个端口进入的ssh请求转发到另一台机器?

Pau*_*cks 5 macos ssh ubuntu port

我有一个小型的本地网络.只有一台机器可供外界使用(这不容易改变).我希望能够设置它,以便标准端口上没有的ssh请求转到另一台机器.这可能吗?如果是这样,怎么样?

哦,所有这些机器都在运行Ubuntu或OS X.

Mar*_*iek 11

另一种方法是使用ssh隧道(在客户端发生).

你可以这样做一个ssh命令:

ssh -L 8022:myinsideserver:22 paul@myoutsideserver
Run Code Online (Sandbox Code Playgroud)

这会将您连接到可从外部访问的计算机(myoutsideserver),并通过ssh连接到服务器上的端口22(标准ssh端口)创建一个隧道,该端口只能从内部访问.

然后你会做另一个这样的ssh命令(让第一个仍然连接):

ssh -p 8022 paul@localhost
Run Code Online (Sandbox Code Playgroud)

然后,通过第一个ssh连接通过myinsideserver连接到本地主机上的端口8022的连接.

您可能需要在myoutsideserver上执行某些操作以允许转发ssh端口.我现在仔细检查一下.

编辑

嗯.ssh manpage说:**只有超级用户才能转发特权端口.**

这对我来说意味着第一个ssh连接必须是root用户.也许其他人可以澄清这一点.

只要转发端口(在本例中为8022)不是特权端口(如22),看起来就不需要超级用户权限.感谢Mike Stone的澄清.