我有以下情况,
(1) local machine
↔︎ (2) cluster gateway
↔︎(3) cluster machine
我想将文件从我的 (1) 传输到 (3),反之亦然。不过,无法直接从 (1) ssh 进入 (3),我只能从 (2) 内到达 (3)。目前,我首先通过 sftp 将文件从(1)传输到(2),然后从(2)传输到(3)。这是相当麻烦的,特别是因为我在(2)上的存储空间非常有限。
我发现答案很可能是 ssh 隧道。但我不确定这是否确实是这样做的方法,我也不知道如何设置或使用它。
我不是IT人,这些事情有时我很难看透。特别是对于 ssh 和 ssh 密钥,我要小心并确保我知道我在做什么。
有人可能有一些见解吗?感谢帮助!
答案1
如果您有最新的 OpenSSH (8.0)本地,您可以使用-J
(跳转)开关:
scp -J user@intermediate /local/path/file.txt user@target:/remote/path/
对于旧版本(但至少 7.3),您可以使用ProxyJump
指示:
scp -o ProxyJump=user@intermediate /local/path/file.txt user@target:/remote/path
还有其他选项,例如ProxyCommand
端口转发,您甚至可以在旧版本的 OpenSSH 上使用它们。这些内容涵盖在OpenSSH 支持多跳登录吗?
如需下载,请参阅如何从只能通过 SSH 连接到另一台主机的主机下载文件?