Я не знаю, как скопировать файл напрямую в одну команду, но если вы можете уступить запуск экземпляра SSH в фоновом режиме, чтобы просто открыть туннель переадресации портов, вы можете скопировать файл в одна команда.
Нравится это:
# First, open the tunnel
ssh -L 1234:remote2:22 -p 45678 user1@remote1
# Then, use the tunnel to copy the file directly from remote2
scp -P 1234 user2@localhost:file .
Обратите внимание, что вы подключаетесь как user2@localhost
в действительной команде scp
, потому что она находится на порту 1234 на localhost, что первая Экземпляр ssh
прослушивает прямые соединения с remote2
. Также обратите внимание, что вам не нужно запускать первую команду для каждой последующей копии файла; вы можете просто оставить его работать.