Quiero descargar un archivo de una sesión SSH activa. En muchos casos, probablemente podría sólo tiene que utilizar SFTP, scp
, rsync
et al, pero hay momentos en los que he elevados permisos en el servidor remoto de una manera que no puedo usar estos métodos.
Si te cuesta entender lo que quiero decir, imagina que deseas descargar algo de /root/
o /var/log/auth.log
. El inicio de sesión raíz está deshabilitado (porque no somos idiotas). ¿Cómo se obtiene ese archivo? ¿Copiarlo en un lugar menos protegido y luego moverlo? Esto es torpe. También hay escenarios en los que la ruta remota es compleja o temporal, o ni siquiera es una ruta porque quiero que la salida de un comando remoto se almacene localmente. ¿Almacenar de forma remota y luego copiar? Clunk!
Hay varias formas más torpes de lograr versiones de estos, pero en un mundo ideal, tendría algo similar al acceso de escritura local desde el servidor remoto, utilizando la sesión SSH existente como un conducto. Algo así (esto es solo la impresión de un artista):
$oli@remote: cp /root/cheesecake /local/
Y solo aparece en mi local cwd
. Y el acceso bidireccional no sería algo malo.
Han pasado ocho largos años desde que hice esta pregunta y hemos visto un rango real de clunk, pero sigue siendo un problema con el que todavía lucho ocasionalmente.
He refactorizado la pregunta en algo mucho más idealista. Entiendo completamente que puede que actualmente no haya una respuesta perfecta. Todos los esfuerzos pasados y futuros hacia mi ideal son apreciados.
zssh
probablemente esté más cerca del flujo de trabajo tipo zmodem que pueda estar recordando.