Как скопировать файл с помощью pscp через сервер промежуточного шлюза

8225
Scott

У меня есть окно перехода между Linux и удаленным сервером. Я видел несколько постов о том, как сделать это с помощью scp (например, здесь ), но я нахожусь на коробке Windows, поэтому ситуация немного отличается. Я хочу скопировать файл с моего локального компьютера с Windows через настройку сервера в качестве шлюза между ними. Я должен быть в состоянии сделать несколько прыжков через промежуточный сервер. Так что-то вроде этого:

A -> B -> C

Я не хочу копировать файл в B, затем войдите в B и скопируйте файл снова. Я хотел бы иметь возможность запускать pscp на несколько файлов, чтобы скопировать их.

5

3 ответа на вопрос

4
Scott

Я обнаружил, что лучший способ сделать это - сначала установить туннель к промежуточному серверу (сервер B на рисунке). Тогда pscp по этой ссылке. Я сделаю шаг точно, что я сделал.

1) Создайте SSH-соединение с сервером B в PuTTY

enter image description here

2) Для этого соединения создайте туннель, который идет от порта 2222 (вы можете выбрать другой, если хотите) к serverC на порту 22

enter image description here

3) Откройте командное окно в Windows. Перейдите туда, где на вашем компьютере установлена ​​программа PuTTY / pscp (если она уже не находится на пути)

4) Введите следующую команду (подставляя свои собственные значения в {}):

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

5) На удаленной машине C файл должен находиться в каталоге / tmp

Более простая альтернатива в Windows - просто использовать WinSCP и использовать функцию туннеля, встроенную в это приложение. Scott 10 лет назад 0
1
Scott

The easiest solution I found to this problem, was to not use pscp at all. Just use WinSCP to copy the file over.

  1. Enter your final server address (i.e. server 'C' in the question) in the session page and select SCP. enter image description here

  2. Click on 'Advanced...'. Go to Connection>Tunnel. Enter your jump server info here (i.e. Server 'B'). enter image description here

  3. Now just login with either your keyfile or password and you'll be tunneled in.

0
xcxc

My even more complicated situation: 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! 

Похожие вопросы