当端口转发被管理禁止时,通过跳转主机将文件从远程服务器传输到本地主机

当端口转发被管理禁止时,通过跳转主机将文件从远程服务器传输到本地主机

一个有效但有时会阻碍工作发展的政策是远程服务器端口在用户空间中不可用。

我只发现了以下解决方案,但是(可能因为我没有全部尝试)它们不起作用。

例如,当使用 rsync -e 和 ssh -J 时,会导致

channel 0: open failed: administratively prohibited: open failed
stdio forwarding failed
ssh_exchange_identification: Connection closed by remote host
rsync: connection unexpectedly closed (0 bytes received so far) [Receiver]
rsync error: unexplained error (code 255) at io.c(235) [Receiver=3.1.2]

所以我需要一种不需要端口而只使用 stdin 的方法

答案1

通过 ssh 终端下载

ssh -ACq USER@JUMP-HOST 'ssh -ACq USER2@REMOTE-HOST "tar --warning=none -cC ~/DIRECTORY  ./FILES"' | tar -xv
  • 连接到跳转主机然后连接到远程主机
  • 通过按键即可实现连接
  • tar 压缩没有意义,因为连接已经被压缩了
  • shell 解释

用于上传

tar -c ./FILES | ssh -ACq USER@JUMP-HOST 'ssh -ACq USER2@REMOTE-HOST "tar -xvC ~/DIRECTORY"'

相关内容