Я хочу скопировать файл из A в D. Компьютер может получить доступ только к тем, которые находятся рядом с ним.
+---------------------------------------------------------+
| Computer A <-> Computer B <-> Computer C <-> Computer D |
+---------------------------------------------------------+
Прямо сейчас я копирую его из A в B с помощью SFTP, затем по ssh в B, копирую его в C, ssh в C и так далее. Когда закончите, я возвращаюсь, закрываю каждый сеанс ssh и удаляю файлы.
Есть ли простой способ отправить файл из A в D более эффективным способом? Прямо сейчас файл должен быть полностью загружен на каждый компьютер в строке, чтобы потом удалить его. Нет, дискеты и ходьба не более эффективны.
Использование LocalPortForwarding для настройки прослушивания локального порта и использования службы SSH назначения.
+---------------------------------------------------------+
| Computer A <-> Computer B <-> Computer C <-> Computer D |
+---------------------------------------------------------+
На [ComputerC] создайте прослушиватель на сокете localhost: 2022, который служит SSH для ComputerD, перенаправляя трафик на ComputerD: 22
$ ssh -L2022:ComputerD:22 ComputerD
На [ComputerB] создайте прослушиватель на сокете localhost: 2022, который служит SSH для ComputerD, перенаправляя трафик на localhost: 2022 из ComputerC
$ ssh -L2022:localhost:2022 ComputerC
На [ComputerA] создайте прослушиватель на сокете localhost: 2022, который служит SSH для ComputerD, перенаправляя трафик на localhost: 2022 из ComputerB
$ ssh -L2022:localhost:2022 ComputerB
Использование порта 2022 на ComputerA в качестве SSH-сервиса ComputerD для копирования файла
$ scp -P2022 file localhost:/path/