一个有效但有时会阻碍工作发展的政策是远程服务器端口在用户空间中不可用。
我只发现了以下解决方案,但是(可能因为我没有全部尝试)它们不起作用。
例如,当使用 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"'