Я хочу скопировать файлы с удаленного компьютера (W) на частный хост-компьютер (P) через scp.
Поскольку я не могу подключиться к машине W напрямую, я использую туннель ssh на 2 разных машинах с портом 22.
То, что я хотел бы сделать, это войти в машину W и оттуда сделать передачу файла scp на машину P, проблема в том, что P скрыт в сети, поэтому я не могу указать
ip удаленного хоста, когда я вошел в машину W. есть ли решение для этого ??
Мне удалось сделать это, когда я вошел в машина P, но я не хочу
запомнить путь к файлу каждый раз, когда я копирую файл.
scp по туннелю ssh
2 ответа
после уточнения настройки, как описано выше, ваша система выглядит следующим образом:
P -- R -- M1 -- M2 -- W
R
маршрутизатор NAT который только позволяет соединениям от P
до M1
, но не наоборот и все узлы должны быть использованы для того, чтобы установить соединение.
Решение 1
ваша единственная реальная проблема-это маршрутизатор R
, над которым у вас нет контроля, поэтому вы должны каким-то образом установить туннель, чтобы позволить W
для подключиться обратно. Самым простым решением было бы иметь P
установить SSH соединение с M1
и установить обратный порт вперед нет.
затем можно настроить второй туннель SSH из W
to M2
перенаправлять локальные пакеты на обратный порт через порт M1
, который, в свою очередь, может быть использован для установки туннельного SSH-соединения из W
to P
.
решение 2
теперь это добавляет некоторую сложность ко всей настройке, что делает ее довольно подверженной ошибкам. Лучшим решением было бы установить VPN-соединение между W
и M1
,P
и M2
и между M1
и M2
. Затем вы можете установить маршрут, используя диапазон частных адресов от W
to P
за эти три тоннеля. Для этого вам нужен root-доступ к обоим M1
и M2
и вам нужно настроить надлежащие брандмауэры, чтобы никто извне не попадал в ваши VPN.
там конечно, есть и другие решения, но то, что вам нужно продумать, как пакеты будут проходить через все эти блокады, фактическое решение может быть адаптировано к вашим инструментам.
Я бы рекомендовал монтировать удаленную файловую систему локально, используя sshfs
. Я не знаю подробностей вашей установки, но приведу пример. Я установил туннель через удаленный сервер (R1) к недоступному второму серверу (R2) в сети R1 с помощью этой команды:
ssh -fN -p 24222 user@R1 -L 2222:R2:22
теперь я могу подключиться к R2 так:
ssh -p 2222 127.0.0.1
Я также могу использовать sshfs
локальное монтирование каталога из R2:
sshfs -p 2222 127.0.0.1:/path/to/dir /mnt/mountpoint
Я пробовал это с помощью туннеля через один не два удаленных сервера, но я не вижу причин, почему он не должен работать с 3 или более до тех пор, как туннель был правильно настроен.
это не совсем то, что вы просили, но это должно послужить решение. После локального монтирования удаленной файловой системы можно использовать simple cp
копировать файлы в / из него.
Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]