![无需打开防火墙端口即可进行 SSH 访问](https://linux22.com/image/704803/%E6%97%A0%E9%9C%80%E6%89%93%E5%BC%80%E9%98%B2%E7%81%AB%E5%A2%99%E7%AB%AF%E5%8F%A3%E5%8D%B3%E5%8F%AF%E8%BF%9B%E8%A1%8C%20SSH%20%E8%AE%BF%E9%97%AE.png)
我有一个安装在远程位置并可以访问互联网的运行 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 端。