如何使用 pscp 通过中间网关服务器跳跃复制文件

如何使用 pscp 通过中间网关服务器跳跃复制文件

我和远程服务器之间有一个 Linux 跳转盒。我看过一些关于如何使用 scp 实现这一点的帖子(例如这里),但我使用的是 Windows 机器,所以情况略有不同。我想从本地 Windows 机器复制一个文件,通过设置为两者之间网关的服务器。我应该能够通过中间服务器进行多跳。所以像这样:

A->B->C

我不想将文件复制到 B,然后登录 B 并再次复制文件。我希望能够对多个文件运行 pscp 以将其复制过来。

答案1

我发现最好的方法是先建立到中间服务器(图中的服务器 B)的隧道。然后通过此链接使用 pscp。我将逐步介绍我所做的操作。

1)在PuTTY中创建与服务器B的SSH连接

在此处输入图片描述

2)为此连接创建一个从端口 2222(您可以根据需要选择其他端口)到端口 22 的服务器 C 的隧道

在此处输入图片描述

3) 在 Windows 中打开命令窗口。导航到计算机上安装 PuTTY/pscp 的位置(如果路径上尚未安装)

4) 输入以下命令(用您自己的值替换 {} 中的值):

c:\putty> pscp -P 2222 -pw {myPasswordOnRemoteMachine} c:\dev\fileIWantToCopy.txt {myusername}@127.0.0.1:/tmp

5)在远程计算机C上,该文件应该位于/tmp目录中

答案2

我发现解决这个问题最简单的方法是根本不使用 pscp。只需使用温SCP将文件复制过去。

  1. 在会话页面中输入您的最终服务器地址(即问题中的服务器“C”)并选择SCP。 在此处输入图片描述

  2. 点击“高级...”。转到连接>隧道。在此处输入您的跳转服务器信息(即服务器“B”)。 在此处输入图片描述

  3. 现在只需使用您的密钥文件或密码登录即可进入。

答案3

我的情况更复杂:A -> B -> C -> D ->E

I used PuTTY and FileZilla

A my Windows machine, 
B and C are gateways (very limited functionality)
D is the first Linux Machine and 
E is the target Linux Machine

I use PuTTY to: 
    ssh into B (w/username password) (IP of B is predefined in PuTTY) then
    ssh into C (w/username password) then manually
    ssh into D (w/username password) then manually
    ssh into E (at least this uses pubic key login so no uid/password!)

Once this is setup I then add tunnel to the IP of the final machine E in PuTTY thus:
    L7777 172.123.124.125:22



OK now fire up FileZilla:

File > SiteManager:
Setup new connection to:
Host: 127.0.0.1 Port: 7777
Protocol SFTP
Ask for password...

Connect!

相关内容