¿Cómo copio una carpeta de remota a local usando scp?

Resuelto Slasengger asked hace 12 años • 14 respuestas

¿ Cómo copio una carpeta del host remoto al local usando scp?

Yo suelo sshiniciar sesión en mi servidor.
Luego, me gustaría copiar la carpeta remota fooa local /home/user/Desktop.

¿Cómo logro esto?

Slasengger avatar Jul 03 '12 12:07 Slasengger
Aceptado
scp -r [email protected]:/path/to/foo /home/user/Desktop/

Al no incluir el '/' final al final de foo, copiará el directorio en sí (incluido el contenido), en lugar de solo el contenido del directorio.

Desde man scp(Ver manual en línea )

-r Copia recursivamente directorios completos

Gryphius avatar Jul 03 '2012 05:07 Gryphius

Para utilizar toda la potencia de scp, debe seguir los siguientes pasos:

  1. Autorización de clave pública
  2. Crear alias SSH

Entonces, por ejemplo, si tienes esto ~/.ssh/config :

Host test
    User testuser
    HostName test-site.example
    Port 22022

Host prod
    User produser
    HostName production-site.example
    Port 22022

se salvará de la entrada de contraseña y simplificará la sintaxis de scp de esta manera:

scp -r prod:/path/foo /home/user/Desktop   # copy to local
scp -r prod:/path/foo test:/tmp            # copy from remote prod to remote test

Además, podrá utilizar la finalización de ruta remota:

scp test:/var/log/  # press tab twice
Display all 151 possibilities? (y or n)

Para habilitar la finalización de bash remota, necesita tener bash-shell en ambos <source>hosts <target>y que la finalización de bash funcione correctamente. Para obtener más información, consulte las preguntas relacionadas:

¿Cómo habilitar el autocompletado para rutas remotas cuando se usa scp?
Completar la pestaña del nombre del archivo SCP

Alexander Yancharuk avatar Dec 04 '2013 06:12 Alexander Yancharuk

Para copiar todo desde la ubicación local a la ubicación remota (cargar)

scp -r /path/from/local username@hostname:/path/to/remote

Para copiar todo desde la ubicación remota a la ubicación local (descargar)

scp -r username@hostname:/path/from/remote /path/to/local

Puerto personalizado donde xxxxestá el número de puerto personalizado

 scp -r -P xxxx username@hostname:/path/from/remote /path/to/local

Copiar en el directorio actual de Remoto a Local

scp -r username@hostname:/path/from/remote .

Ayuda:

  1. -rCopie recursivamente todos los directorios y archivos.
  2. Utilice siempre la ubicación completa desde /, obtenga la ubicación/ruta completa mediantepwd
  3. scpreemplazará todos los archivos existentes
  4. hostnameserá el nombre de host o la dirección IP
  5. si se necesita un puerto personalizado (además del puerto 22), utilice-P PortNumber
  6. . (punto) : significa directorio de trabajo actual, así que descargue/copie desde el servidor y péguelo aquí únicamente.

Nota: A veces, el puerto personalizado no funcionará debido a que el puerto no está permitido en el firewall, así que asegúrese de que el puerto personalizado esté permitido en el firewall para conexiones entrantes y salientes.

Shiv Singh avatar May 23 '2016 09:05 Shiv Singh

Lo que uso siempre es:

scp -r username@IP:/path/to/server/source/folder/  .

. (punto) : significa current folder. así que copie del servidor y péguelo aquí solamente.

IP : puede ser una dirección IP 125.55.41.311o puede ser un host ns1.mysite.example.

Manish Shrivastava avatar Jun 10 '2014 07:06 Manish Shrivastava