我有一个安装在远程位置并可以访问互联网的运行 Linux(Debian)的设备。
我无法修改远程位置的防火墙,并且公共 IP 地址是动态的。
如何才能从机器 LAN 外部通过 SSH 访问这台机器,而无需修改防火墙将端口 22 转发到机器?
注意:我有一个面向 Web 的云服务器,具有静态 IP 地址,远程设备每 5 秒联系一次该服务器以检索配置数据。如果需要,我可以向设备推送命令以启动某种反向 SSH 隧道,但我不确定如何从服务器和/或本地桌面利用该隧道。
能够从云服务器或本地桌面将文件通过 SFTP 传输到设备将是一个巨大的附加好处。
感谢关于如何实现此目的的任何建议或意见!
答案1
远程机器是 A 您的云服务器是 B 您的台式机/笔记本电脑是 C
A 发起与 B 建立反向隧道的 SSH 会话。这将在 B 的本地主机上打开一个端口,指向机器 A 上的端口 22。所有流量都通过此隧道传输。检查 ssh 客户端的 -R 选项。
从 C 通过 ssh 进入 B,然后 ssh 到本地主机上的端口,即 A 发起的 SSH 隧道的 B 端。