使用动态端口分配的反向 SSH 隧道
Posted
技术标签:
【中文标题】使用动态端口分配的反向 SSH 隧道【英文标题】:Reverse SSH Tunnel with Dynamic Port Allocation 【发布时间】:2021-10-15 20:01:26 【问题描述】:我们有一个实现反向 ssh 隧道以启用远程端口转发的系统。
这可以通过公共 IP 在本地网络上公开设备。 但是,我们通过静态端口分配来实现这一点,即我们将设备的序列号映射到端口,并且每次请求到达我们的服务器时序列号,我们转发到指定端口。
显然这种设计不可扩展,我们想用动态端口分配来代替它,这样服务器自己会负责分配端口并释放它一次设备离线。
如果您能就如何实现这一目标提出建议,那就太好了。
感谢期待并为我缺乏知识表示歉意,以防我没有更好地解释它(我是新手)
【问题讨论】:
【参考方案1】:这可以通过在您的服务器上使用~/.ssh/authorized_keys
中的 ssh 命令脚本来解决。
command="reverse_server.py" ssh-rsa <publicKey>
首先,客户端必须连接到脚本并发送它自己的序列号(在我的情况下,使用一个 NIC 的 MAC 地址)。 服务器查看数据库并告知分配的端口号或为未知序列创建一个新的。
在下一步中,客户端可以连接,使用报告的端口号作为反向端口。
顺便说一句。如果隧道断开或卡住,您应该添加一些逻辑来监控和重新创建隧道。
【讨论】:
以上是关于使用动态端口分配的反向 SSH 隧道的主要内容,如果未能解决你的问题,请参考以下文章