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