我想通过本地计算机将文件从远程主机 (remote1) 复制到另一台远程主机 (remote2)。我只能从这台本地计算机与两个远程主机之一建立 ssh 连接。它们之间没有连接,我也无法从任何远程主机连接到本地。
我读到我应该使用 scp -3 user@remote1:Folder/file user@remote2:Folder/,但不幸的是 scp 版本对于 -3 来说太旧了。所以我读到我需要一个 ssh 隧道。你能指导我吗?
答案1
您将需要两个 shell 会话。在第一个 shell 中输入:
ssh user_r1@remote1 -L 2222:localhost:22
然后,在第二个 shell 上:
ssh user_r2@remote2 -R 2222:localhost:2222
ssh user_r1@localhost -p 2222
在第一个 shell 中,您将连接到 remote1,并将流量从本地计算机的端口 2222 重定向到 remote1 的端口 22。
在第二个 shell 中,您将连接到 remote2,并将来自 remote2 端口 2222 的流量重定向到本地计算机的端口 2222。
然后,连接到 remote2,如果您尝试在 localhost 端口 2222 上进行 ssh(或 scp),则流量将被重定向到 remote1 的端口 22。