Regularmente me encuentro con ganas de copiar un archivo de la sesión de terminal remota a mi máquina local. Por lo general, salgo de la sesión remota y llamo a una transferencia scp de local para copiar el archivo de remoto a local. Pero esto se siente un poco largo sin aliento. Me gustaría transferir el archivo mientras estoy conectado al control remoto a través de SSH para ahorrar tiempo. Mi máquina local está conectada a Internet desde un rango de IP dinámico, por lo que nunca estoy seguro de cómo conectarme a ella de forma remota. Pero seguramente, como la sesión remota se origina en mi computadora portátil, debe haber un acceso directo en scp para volver a mi computadora portátil ... ¿verdad?
~C
escape. Simplemente escriba<Enter>~C-R 12345:localhost:22<Enter>
y tendrá su túnel sin abandonar su sesión SSH ya establecida.Pruebe lo siguiente en la línea de comandos desde la máquina remota, es posible que deba habilitar el reenvío de puertos en su enrutador.
Fuente: scp fácilmente un archivo al host desde el que se está conectando (commandlinefu.com)
fuente
${SSH_CLIENT%% *}
envíe la IP de su máquina local. Entonces, todo el comando abre una sesión scp desde la máquina remota a su máquina local para la transferencia de archivos. Esto solo se puede hacer si puede SSH a su máquina local desde la máquina remota.export ME="${SSH_CLIENT%% *}"
en su archivo rc de shell. Entonces puede simplemente usarscp <file> $ME:<local path>
Tal vez zssh ?
Utiliza las venerables implementaciones rz, sz de la transferencia de archivos zmodem.
fuente
Votó esta pregunta, esto es algo que me gustaría lograr fácilmente también.
Aquí está la respuesta relacionada: ¿Cómo puedo SCP de máquina remota a máquina local cuando estoy fuera de mi red doméstica?
fuente
Una solución sería suspender la sesión ssh en la máquina local, realizar la copia en la máquina local y luego reanudar su sesión ssh donde la dejó.
Por ejemplo, supongamos que estoy conectado a myuser @ remote y quiero copiar el archivo lol.txt en mi computadora local. Primero quiero suspender ssh en mi máquina local. Normalmente usaría Ctrl- Zpara suspender, pero esto no funcionará en ssh porque se enviará al shell remoto. En su lugar, debe usar la secuencia de escape ssh Enter~. Para suspender ssh presione Enter~ Ctrl- Z. Ahora puede ejecutar comandos en su máquina local y puede hacer
user@localmachine:~$ scp user@remote:/path-to-file/lol.txt /dest-path/lol.txt
para copiar el archivo y luego volver a ssh exactamente donde lo dejó con
user@localmachine:~$ fg
fuente
Si desea una solución más simple, simplemente abra la cuenta de Dropbox, vaya a la máquina remota y haga wget (versión modificada desde aquí ):
wget --no-check-certificate https://www.dropbox.com/s/2123jshf/ABC.pdf?dl=1 -O abc.pdf
fuente