从服务器到客户端启动ssh连接


10

我们可以轻松地通过连接ssh到具有公共IP的远程计算机。

但是现在我有一台没有公共IP的远程计算机,我需要从具有公共IP的计算机连接到它。因此,远程计算机应启动此连接(添加客户端)。

我需要它,因为我的祖父在没有公共IP的计算机上,有时他的系统需要帮助。

在Windows上类似的情况下,我使用VNC连接(通过TightVNC),TightVNC服务器具有“添加客户端”选项:用户刚刚输入了客户端的IP(即我的公共IP),客户端已经处于“监听模式”,并且当“服务器”添加客户端时,连接被初始化。

因此,是否可以通过SSH连接执行相同的技巧?

Answers:


12

根据定义,客户端是发起连接的客户端。

对于您的问题,我认为一个简单的解决方案是构建反向隧道。

在没有公共IP的计算机上:

ssh -R 2222:localhost:22 loginOfServerWithPublicIP@publicIP

这将通过SSH连接到服务器,并建立一条从具有端口2222上的公共IP的服务器到没有端口22(SSH)上的公共IP的计算机的隧道。

然后在服务器上:

ssh -p 2222 loginOfComputerWithoutPublicIP@locahost

通过第一隧道将连接从服务器的端口2222重定向到计算机的端口22。您可能想要使用autossh使隧道更具弹性的工具(即,在关闭隧道时自动重新启动)。


谢谢,非常有用和简洁。有关更多详细信息和其他有用的选项,请参见此问题的答案。
AstroFloyd
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.