gpt4 book ai didi

scp - 如何从 2-deep 连接中提取文件

转载 作者:行者123 更新时间:2023-12-01 22:36:57 27 4
gpt4 key购买 nike

假设我通过 SSH 连接到服务器 Server1,然后从那里通过 SSH 连接到服务器 Server2,后者只能通过连接到 Server1 进行访问。下面模拟了此行为的示例终端命令:

[name@mylaptop]$ ssh user@Server1
user@Server1's password:
*** Welcome to Server1! ***
[user@Server1]$ ssh user2@Server2
user2@Server2's password:
*** Welcome to Server2! ***
[user2@Server2]$

现在我在 Server2 上的主目录中有一个名为 file.txt 的文件:

[user2@Server2]$ ls
file.txt
[user2@Server2]$

是否可以使用 scp 通过单个命令将 file.txtServer2 复制到 mylaptop (即不需要先将文件复制到 Server1)?

换句话说,这能比下面的更简单吗:

[name@mylaptop]$ ssh user@Server1
user@Server1's password:
*** Welcome to Server1! ***
[user@Server1]$ scp user2@Server2:~/file.txt .
user2@Server2's password:
file.txt 100% 690 0.7KB/s 00:00
[user@Server1]$ logout
Connection to Server1 closed.
[name@mylaptop]$ scp user1@Server1:~/file.txt .
user@Server1's password:
file.txt 100% 690 0.7KB/s 00:00
[name@mylaptop]$ ls
file.txt

最佳答案

这是可能的,而且相对容易,即使您需要使用证书进行身份验证(通常在 AWS 环境中)。

下面的命令会将文件从 server2 上的 remotePath 直接复制到位于 localPath 的计算机中。在内部,scp 请求通过 server1 代理。

scp -i user2-cert.pem -o ProxyCommand="ssh -i user1-cert.pem -W %h:%p user1@server1" user2@server2:/<remotePath> <localpath>

如果您改用密码身份验证,请尝试

scp -o ProxyCommand="ssh -W %h:%p user1@server1" user2@server2:/<remotePath> <localpath>

如果您在两个服务器中使用相同的用户凭据:

scp -o ProxyCommand="ssh -W %h:%p commonuser@server1" commonuser@server2:/<remotePath> <localpath>

关于scp - 如何从 2-deep 连接中提取文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21614383/

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