Puede usar la opción ProxyCommand de SFTP para hacer un túnel transparentemente una conexión SFTP a través de una conexión SSH (un poco similar a la respuesta de WhiteFang34, pero a través de la conexión SSH stdin & stdout, en lugar de un puerto TCP local reenviado):
sftp -o "ProxyCommand=ssh -e none user@intermediatehost exec /usr/bin/nc %h %p 2>/dev/null" user@finalhost
(Eso supone que el host intermedio tiene netcat instalado como / usr / bin / nc; de lo contrario, es posible que deba encontrar / instalar alguna forma equivalente de encaminar stdin & stdout en una sesión TCP).
Lo realmente genial de esta opción es que puede agregarla a su archivo ~ / .ssh / config, lo que la hace transparente:
Host finalhost
ProxyCommand ssh -e none user@intermediatehost exec nc %h %p 2>/dev/null
Con esa entrada, puede usar sftp, scp y ssh para finalhost, e invocará automáticamente el túnel. La única parte no transparente es que solicitará dos contraseñas (host intermedio seguido de host final), pero si lo desea, también puede eliminar eso con los pares de claves SSH ...