Как скопировать файл с помощью pscp через сервер промежуточного шлюза
У меня есть перемычка linux между мной и удаленным сервером. Я видел несколько сообщений о том, как сделать это с помощью scp (например, здесь), но я нахожусь на коробке Windows, поэтому ситуация немного отличается. Я хочу скопировать файл с моего локального компьютера с Windows через настройку сервера в качестве шлюза между ними. Я должен быть в состоянии сделать несколько прыжков через промежуточный сервер. Так что-то вроде этого:
A -> B -> C
Я не хочу копировать файл в B, затем войдите в B и скопируйте файл снова. Я хотел бы иметь возможность запустить pscp на несколько файлов, чтобы скопировать их.
3 ответа
Я обнаружил, что лучший способ сделать это - сначала установить туннель к промежуточному серверу (сервер B на рисунке). Тогда pscp по этой ссылке. Я сделаю шаг точно, что я сделал.
1) Создайте SSH-соединение с сервером B в PuTTY
2) Для этого соединения создайте туннель, который идет от порта 2222 (вы можете выбрать другой, если хотите) к serverC на порту 22
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
Самым простым решением, которое я нашел для этой проблемы, было вообще не использовать pscp. Просто используйте WinSCP, чтобы скопировать файл.
Введите свой последний адрес сервера (т. Е. Сервер "C" в вопросе) на странице сеанса и выберите SCP.
Нажмите "Дополнительно...". Перейдите в Соединение> Туннель. Введите здесь информацию о вашем сервере прыжков (т.е. сервер 'B').
Теперь просто войдите под своим ключом или паролем, и вы будете подключены.
Моя еще более сложная ситуация: 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!