без изменения конфигурации SSH, вы можете создавать два узла SSH Tunnels -> Server1 и Server2-> хост через SSH-соединение с сервером2. Подключите эти два туннеля на хост-машине (тот же порт). И запустите Sudo на Server2, чтобы извлечь данные с подключенных туннелей на Server1 и сохранить их на Server2.
ssh -L60000:${source}:22 -R60000:localhost:60000 -t ${target} 'sudo bash -c "ssh -p 60000 '$(whoami)'@localhost \"cd /path/to/dir; tar -czf - files\"|tar -C/path/to/target -xzf -"'
Идея: 1- Чтобы создать локальный туннель с вашей машины в исходную машину на порту 60000
ssh -L60000:${source}:22
1b- Создайте удаленный туннель, чтобы добраться до вашего компьютера
-R60000:localhost:60000
2- Подключение к целевому аппарату
-t ${target}
. 3 - выполните все как root На целевой машине для написания
'sudo bash -c "..."'
4- подключиться к исходной машине через туннель. WHOAMI и Localhost означают локальныйhost на машине $ {Targe}.
ssh -p 60000 '$(whoami)'@localhost
5- Упакуйте удаленный файл (ы) и отправьте его на Zipped в STDOUT
cd /path/to/dir; tar -czf - file
6- Получите пакет через STDOUT и извлечь файлы соответственно на каталоге / path / to / tarc
|tar -C/path/to/target -xzf -
Примечание: вы можете получить до 3 SSHKey подтверждений и 3 запроса на пароль. Но файлы будут скопированы.
Вы можете использовать команду файл
, чтобы определить тип файла, чтобы понять, какой инструмент вам нужно использовать для извлечения вашего архива.
В соответствии с именем файла, ваш файл является архивом zip
. Для этого необходимо использовать инструмент unzip
:
unzip DEX_DWH.zip -d DEX_DWH
Он извлекает файлы в новую директорию DEX_DWH
. Если вместо этого необходимо распаковать файлы в рабочую директорию, часть -d DEX_DWH
не нужна.
Утилита gzip
предназначена для работы со сжатыми файлами gzip
(т.е. не архивами, для этого обычно используется tar
перед компрессией/после распаковки).