SCP между двумя сетями

мне нужно передать файл между двумя компьютерами, которые не подключены к той же сети. У меня есть третий компьютер, который может видеть обе сети через VPN.

С третьего компьютера, я могу сделать:

scp root@firstcomputer:./file ./

и закончить перевод следующей фразой:

scp ./file root@secondcomputer:./

но я не могу сделать это в одну строку, следующим образом:

scp root@firstcomputer:./file root@secondcomputer:./

ошибка

ssh: connect to host secondcomputer port 22: No route to host
lost connection

Я понимаю, что это, вероятно, потому, что firstcomputer не вижу secondcomputer. Можно ли дать SCP параметр, который имеет дело с тем, что машина, на которой выполняется программа SCP, является единственным, кто может видеть оба компьютера?

кстати, третий компьютер-это Mac с Lion, а первый и второй работают под управлением Debian.

8
задан hairboat
30.03.2023 1:22 Количество просмотров материала 2582
Распечатать страницу

3 ответа

вы должны иметь возможность использовать туннель SSH.

предполагая, что вы пытаетесь передать файл с удаленного компьютера ("удаленный") на локальный компьютер ("локальный"), установите туннель через третий компьютер ("шлюз"), введя это на локальном компьютере:

ssh -fNL 12345:remote:22 gatewaylogin@gateway

тогда вы можете запустить неограниченное количество команд SCP на этом туннеле (все еще набрав на локальном компьютере):

scp -P 12345 remotelogin@localhost://path/to/remote/file /local/path/where/you/want/file

Я просто проверил это в своей сети, и это сработало отлично.

приведенный выше метод хорош, если удаленная сеть безопасна, но если она не безопасна, вам нужно будет установить туннель между локальным и шлюзом и другим туннелем между шлюзом и удаленным, связывая их общим номером порта.

3
отвечен mantipula 2023-03-31 09:10

опция scp -3 должна быть тем, что вы ищете. Чтобы положить его в вашем примере:

scp -3 root@firstcomputer:./file root@secondcomputer:./

обратите внимание, что опция -3 была впервые представлена в OpenSSH 5.7, которая была выпущена в начале 2011 года.

20
отвечен andol 2023-03-31 11:27

вы можете попробовать это:

root@firstcomputer:./file /tmp && scp /tmp/file root@secondcomputer:./ && rm /tmp/file

этот файл будет скопирован в каталог / tmp на третьем компьютере, и если он будет успешным, он будет скопирован на второй компьютер, а затем очистится. Поскольку вы используете оператор&&, каждая команда будет выполняться только в том случае, если предыдущая команда выполнена успешно.

1
отвечен Rilindo 2023-03-31 13:44

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх