如何通过不允许 TCP 隧道的中间服务器通过 ssh OVER 传输 scp 文件?

如何通过不允许 TCP 隧道的中间服务器通过 ssh OVER 传输 scp 文件?

我正在 SSH 连接到我的大学网络,然后我可以从那里 SSH 连接到我的服务器。我如何将文件从本地计算机传输到我的服务器?我尝试了隧道,但似乎不允许,我得到:

Note that it is not permitted to run SSH tunnels through this or any other computer on campus

答案1

然后,您可以尝试端口转发,这样登录到您的 uni 网络后,连接到您的本地 home_IP:home_TCP_port 将被转发到 your_server_IP:22

例如,在家里主持:

  • ssh -L 127.0.0.1:10022:your_server_IP_inside_uni_net:22 uni-network-host
  • scp -P 10022 foo_file 127.0.0.1:

答案2

您需要适当地设置您的 .ssh/config 文件,它才会按您预期的方式工作。

Host webserver
  ProxyCommand ssh -q [email protected] nc -q 0 %h %p

man ssh_config 将为您提供所有必要的选项。将“webserver”替换为最终目的地的主机名。将intermediatehost.edu 替换为您途中第一跳的主机名。然后,您将能够直接通过 ssh(和 scp)连接到“webserver”。

答案3

获取所需内容的方法是通过文本模式控制台执行文件传输。

换句话说,你需要一些 20 世纪 80 年代的东西:ZModem

如果您有一个支持 ZModem 传输的 SSH 客户端,并且它们存在(只是不是库存的 OpenSSH),您可以通过命令传输文件sz

这是因为旧的调制解调器协议是基于字符的,需要通过嘈杂的连接可靠地传输二进制数据,而这些连接可能允许也可能不允许 8 位字符。如果您的服务器有此功能,或者可以选择安装此功能,那么您就可以进行文件传输。

相关内容