gpt4 book ai didi

scp - 如何与第二个远程主机进行 scp

转载 作者:行者123 更新时间:2023-12-03 05:17:55 25 4
gpt4 key购买 nike

我想知道是否有一种方法可以让我通过remote1主机直接从本地计算机对remote2主机的文件进行SCP。

网络仅允许从远程 1 主机连接到远程 2 主机。另外,remote1 主机和remote2 主机都无法 scp 到我的本地计算机。

有没有类似的东西:

scp user1@remote1:user2@remote2:file 。

第一个窗口:ssh remote1,然后是scp remot2:file .

第二个 shell:scp remote1:file .

第一个窗口:rm 文件;注销

我可以编写一个脚本来完成所有这些步骤,但如果有直接的方法,我宁愿使用它。

谢谢。

编辑:我正在考虑打开 SSH 隧道之类的事情,但我对将什么值放在哪里感到困惑。

目前,要访问 remote1,我在本地计算机上的 $HOME/.ssh/config 中有以下内容。

Host remote1
User user1
Hostname localhost
Port 45678

一旦进入remote1,要访问remote2,它是标准本地 DNS 和端口 22。我应该在 remote1 和/或上放置什么在 localhost 上更改?

最佳答案

我不知道有什么方法可以直接在一个命令中复制文件,但是如果您可以在后台运行 SSH 实例以保持端口转发隧道打开,那么您可以将文件复制到一个命令。

像这样:

# First, open the tunnel
ssh -L 1234:remote2:22 -p 45678 user1@remote1
# Then, use the tunnel to copy the file directly from remote2
scp -P 1234 user2@localhost:file .

请注意,您在实际的 scp 命令中以 user2@localhost 身份进行连接,因为第一个 ssh 位于 localhost 的端口 1234 上实例正在监听到 remote2 的转发连接。另请注意,您不需要为每个后续文件副本运行第一个命令;您只需让它运行即可。

关于scp - 如何与第二个远程主机进行 scp,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9139417/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com