So kopieren Sie eine Datei mit pscp über einen zwischengeschalteten Gateway-Server-Hop

8315
Scott

Ich habe eine Linux-Sprungbox zwischen mir und einem Remote-Server. Ich habe ein paar Beiträge dazu gesehen, wie man das mit scp macht (zB hier ), aber ich bin auf einer Windows-Box, daher ist die Situation etwas anders. Ich möchte eine Datei von meinem lokalen Windows-Rechner über einen Server als Gateway zwischen den beiden kopieren. Ich sollte in der Lage sein, einen Multisprung über den Zwischenserver durchzuführen. Also so etwas wie:

A -> B -> C

Ich möchte die Datei nicht nach B kopieren, dann in B einloggen und die Datei erneut kopieren. Ich möchte in der Lage sein, pscp für eine Reihe von Dateien auszuführen, um sie zu kopieren.

5

3 Antworten auf die Frage

4
Scott

I found that the best way to do this is to first establish a tunnel to the intermediate server (server B in the illustration). Then pscp over this link. I'll step through exactly what I did.

1) Create an SSH connection to serverB in PuTTY

enter image description here

2) For this connection create a tunnel that goes from port 2222 (you can pick another if you want) to serverC at port 22

enter image description here

3) Open a command window in Windows. Navigate to where PuTTY/pscp is installed on your machine (if not on the Path already)

4) Enter the following command (substituting your own values for those in {}):

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

5) On the remote machineC, the file should be in the /tmp directory

Eine einfachere Alternative unter Windows ist die Verwendung von WinSCP und die in dieser App integrierte Tunnelfunktion. Scott vor 11 Jahren 0
1
Scott

Die einfachste Lösung, die ich für dieses Problem fand, bestand darin, pscp überhaupt nicht zu verwenden. Verwenden Sie einfach WinSCP, um die Datei zu kopieren.

  1. Geben Sie Ihre endgültige Serveradresse (dh Server 'C' in der Frage) auf der Sitzungsseite ein und wählen Sie SCP aus. enter image description here

  2. Klicken Sie auf "Erweitert ...". Gehen Sie zu Verbindung> Tunnel. Geben Sie hier Ihre Jump Server-Informationen ein (zB Server 'B'). enter image description here

  3. Melden Sie sich jetzt entweder mit Ihrer Schlüsseldatei oder Ihrem Kennwort an, und Sie werden getunnelt.

0
xcxc

Meine noch kompliziertere 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!