![通过防火墙到集群的 SSH 隧道](https://linux22.com/image/34541/%E9%80%9A%E8%BF%87%E9%98%B2%E7%81%AB%E5%A2%99%E5%88%B0%E9%9B%86%E7%BE%A4%E7%9A%84%20SSH%20%E9%9A%A7%E9%81%93.png)
我在大学工作,但经常远程工作。大学里有一台集群计算机,我需要能够与之交互,但它位于防火墙后面。我们称防火墙为 F,集群为 C。
过去,在类似的情况下,我只会ssh
到 F,然后ssh
从 F 到 C。这很好用,而且我可以这样做。问题是,与我过去处理过的其他防火墙不同,F 除了ssh
.我需要能够将文件传入和传出 C,如果没有scp
.
我的大学针对这种情况提供了sslvpn,但由于我和技术人员无法弄清楚为什么我ssh
在sslvpn上无法进入本地计算机。例如,虽然我可以从外部网络ssh
进入 F,然后再进入 C,但当连接到 sslvpn 时,我无法通过 ssh 进入 F OR C(或网络上的任何其他计算机)。连接超时。
我认为ssh
隧道可能是解决方案 - 将我的流量通过 F 隧道传输到 C(据我所知)。然后我可以scp
到 C 或从 C 发送数据包,数据包将通过 F 进行隧道传输。但是,我在设置此选项时遇到了麻烦,并且我在网上找到的指南都没有帮助。我希望能够在 C 上有一个通过 F 建立隧道的交互式 shell。
我试过了:
~ ᐅ ssh -f -R 3000:me@firewall_here:5222 me@cluster_here -N
~ ᐅ ssh -f -L 3000:me@firewall_here:5222 me@cluster_here -N
我也尝试遵循本指南:http://www.revsys.com/writings/quicktips/ssh-tunnel.html 和本指南:
使用这两个命令中的任何一个,当尝试连接到 m3@cluster_here 时,连接都会超时,就像我在 sslvpn 上一样。我不知道如何解决这个问题。任何帮助表示赞赏 - 并且可以运行任何命令以获得更多有用的信息。
答案1
不完全是您要求的答案,但您应该能够通过 SSH 连接传输文件:
发送
ssh user1@firewall "ssh user2@cluster \"cat > remote_file\" " < local_file
获取
ssh user1@firewall "ssh user2@cluster \"cat remote_file\" " > local_file
编辑:
还有基于终端的文件传输工具,例如“zmodem”
答案2
了解反向 SSH。也许这会对你有所帮助。我用它连接到 NAT 后面的远程存储。