¿Qué comando de terminal puedo usar para transferir un directorio desde una máquina remota (linux) a mi máquina local (mac)?Lo más importante es que me gustaría hacer esto desde la línea de comando mientras estoy conectado por SSH a la máquina remota.Sé cómo usar SCP mientras estoy en la línea de comando de mi máquina local, pero no tengo idea de cómo lo usaría desde la máquina remota (ni cuál sería mi ruta local).
Respuesta1
Inicie el sshd
en su computadora local si aún no lo ha hecho. Entonces comienza unsegundosesión desde su computadora local a la computadora remota:
ssh -R 2222:127.0.0.1:22 user@remote
Esto reenvía el puerto remoto 2222 a la sshd
escucha en 127.0.0.1 en su computadora local, creando un archivo reverse tunnel
. Luego ejecute scp
en la computadora remota:
scp -P2222 file 127.0.0.1:/path/
Respuesta2
También puede hacer lo contrario, tomar un archivo de una máquina remota a la máquina local,
ssh -L 2222:[email protected]:22 [email protected] -N &
scp -P 2222 127.0.0.1:/path/to/file/on/remote/machine.diff /tmp
El comando ssh configura un túnel desde localhost:2222 hasta la máquina remota 192.168.1.37 detrás del servidor de red remoteserver.com. El segundo comando te permite copiarlo localmente.
Algunobuenos ejemplos y consejos aquíy cómo configurarlo en ~/.ssh/config para automatizarlo.
Respuesta3
Si está localmente detrás de un enrutador/firewall que le brinda una dirección IP privada, necesitará configurar el enrutador para que establezca un puerto NAT para asignarlo a su puerto local 22. Luego podrá acceder a él desde la computadora remota dirigiéndose a sudirección IP públicaen cualquier puerto que elija (puede asignar el puerto 22 directamente, pero generalmente recomiendo evitar esto ya que los puertos de servidor estándar son objetivos comunes para el malware que intenta encontrar una manera de ingresar).