将文件从远程复制到本地

将文件从远程复制到本地

我正在尝试将文件从 10.10.10.99:/home/shantanu/ 复制到本地主机。唯一的问题是我需要通过 10.10.10.98 建立隧道连接,但这样行不通……

ssh [email protected] "ssh [email protected] cp /home/shantanu/test.txt . "

线程“通过多跳的 ssh 隧道”太令人困惑了。

https://superuser.com/questions/96489/ssh-tunnel-via-multiple-hops

答案1

不要使用“cp”在启用 SSH 的主机之间复制文件,请使用 scp。类似这样的命令应该可以满足您目前的需求:

ssh -f [email protected] -L 41111:10.10.10.99:22 -N
scp -P 41111 shantanu@localhost:/home/shantanu/test.txt .

需要注意的是,第一个命令会创建一个隧道(仅可从本地主机访问,但仍可访问),您可能希望在传输文件后关闭该隧道。或者让它保持打开状态,这不会带来巨大的安全风险,因为您仍需要对第二台主机进行身份验证才能使用它。

答案2

只需将本地文件通过 SSH 管道链传输到其最终目的地即可:

ssh [email protected] "ssh [email protected] 'cat >test.txt'" </home/shantanu/test.txt

唯一棘手的部分可能是在目标机器上执行 shell 重定向所需的双引号。

答案3

(与此没有直接关系但是...)您还可以创建反向 SSH 隧道。

在远程服务器上:

ssh -fN -R 7000:localhost:22 username@yourMachine-ipaddress

现在从你的机器向你自己的机器的 7000 端口发起 ssh 连接请求:

ssh username@localhost -p 7000

相关内容