Cómo utilizar el comando SCP para transferir archivos de forma segura en Linux

27 feb 2021 3 min di lettura
Cómo utilizar el comando SCP para transferir archivos de forma segura en Linux
Indice dei contenuti

Introducción

SCP (copia segura) es una utilidad de línea de comandos que le permite copiar archivos y directorios de forma segura entre dos ubicaciones.

Con scp, puede copiar un archivo o directorio:

  • Desde su sistema local a un sistema remoto.
  • Desde un sistema remoto a su sistema local.
  • Entre dos sistemas alejados del sistema local.

Al transferir datos con scp, tanto los archivos como la contraseña están encriptados.

En este tutorial, le mostraremos cómo usar el scp través de ejemplos prácticos y explicaciones detalladas de las opciones scp más comunes.

Sintaxis del comando SCP

Antes de entrar en cómo usar el scp, comencemos mirando la sintaxis básica.

La scp tiene la siguiente forma:

scp [OPTION] [user@]SRC_HOST:]file1 [user@]DEST_HOST:]file2
  • OPTION: opciones como cifrado, configuración ssh, puerto ssh, límite, copia recursiva... etc.
  • [user@]SRC_HOST:]file1 archivo de origen.
  • [user@]DEST_HOST:]file2 archivo de destino.

Los archivos locales deben especificarse utilizando una ruta absoluta o relativa, mientras que los nombres de archivos remotos deben incluir una especificación de usuario y host.

scp proporciona una serie de opciones que controlan todos los aspectos de su comportamiento. Las opciones más utilizadas son:

  • -P Especifica el puerto ssh del host remoto.
  • -p Conservar los tiempos de acceso y modificación de archivos.
  • -q Utilice esta opción si desea suprimir el indicador de estado y los mensajes que no sean de error.
  • -C Esta opción obligará a scp a comprimir los datos cuando se envíen a la computadora de destino.
  • -r Esta opción permitirá que scp copie directorios de forma recursiva.

Prerrequisitos

El scp basa en ssh, por lo que requiere una clave o contraseña ssh para autenticarse en sistemas remotos.

Los dos puntos : distinguen entre hosts locales y remotos.

Debe tener al menos permisos de lectura en el archivo de origen y permisos de escritura en el sistema de destino para poder copiar archivos.

Tenga cuidado al copiar archivos que comparten el mismo nombre y ruta en ambos sistemas, scp sobrescribe los archivos sin previo aviso.

Al transferir archivos de gran tamaño, se recomienda que ejecute el comando scp usando Screen o dentro de una sesión tmux.

Copiar un archivo local a un sistema remoto

Para copiar un archivo de un sistema local a un sistema remoto, ejecute el siguiente comando:

scp file.txt [email protected]:/remote/directory

Donde, file.txt es el nombre del archivo que queremos copiar, remote_username es el usuario en el servidor remoto, 10.10.0.2 es la dirección IP del servidor. /remote/directory es la ruta al directorio donde desea copiar el archivo. Si no especifica un directorio remoto, el archivo se copiará en el directorio de inicio del usuario remoto.

Se le pedirá que ingrese la contraseña del usuario y comenzará el proceso de transferencia.

[email protected]'s password:
 file.txt 100% 0 0.0KB/s 00:00

Si omite el nombre del archivo de la ubicación de destino, el archivo se copia con el nombre original. Si desea guardar el archivo con un nombre diferente, debe especificar el nuevo nombre de archivo:

scp file.txt [email protected]:/remote/directory/newfilename.txt

Si SSH en el host remoto está escuchando en un puerto que no sea el 22 predeterminado, puede especificar el puerto usando el argumento -P

scp -P 2322 file.txt [email protected]:/remote/directory

El comando para copiar un directorio es muy similar a copiar archivos. La única diferencia es que debe usar el -r para recursivo.

Para copiar un directorio de un sistema local a un sistema remoto, use la opción -r

scp -r /local/directory [email protected]:/remote/directory

Copie un archivo remoto a un sistema local

Para copiar un archivo de un sistema remoto a un sistema local, utilice la ubicación remota como origen y la ubicación local como destino.

Por ejemplo, para copiar un archivo llamado file.txt desde un servidor remoto con IP, 10.10.0.2 ejecute el siguiente comando:

scp [email protected]:/remote/file.txt /local/directory

Si no ha configurado el acceso SSH sin contraseña a la computadora remota, se le pedirá la contraseña del usuario.

Copiar un archivo entre dos sistemas remotos

A diferencia de rsync, cuando usa scp no necesita iniciar sesión en uno de los servidores para transferir archivos de una computadora remota a otra.

El siguiente comando copiará el /files/file.txt del host remoto host1.com al /files en el host remoto host2.com.

scp [email protected]:/files/file.txt [email protected]:/files

Se le pedirá que ingrese contraseñas para ambas cuentas remotas. Los datos se transferirán directamente de un host remoto a otro.

Para enrutar el tráfico a través de la máquina en la que se emite el comando, use la opción -3

scp -3 [email protected]:/files/file.txt [email protected]:/files

Conclusión

En este tutorial, aprendió a usar el scp para copiar archivos y directorios.

También puede configurar la autenticación basada en claves SSH y conectarse a servidores Linux sin ingresar una contraseña.

Buy me a coffeeBuy me a coffee

Supportaci se ti piacciono i nostri contenuti. Grazie.

Successivamente, completa il checkout per l'accesso completo a Noviello.it.
Bentornato! Accesso eseguito correttamente.
Ti sei abbonato con successo a Noviello.it.
Successo! Il tuo account è completamente attivato, ora hai accesso a tutti i contenuti.
Operazione riuscita. Le tue informazioni di fatturazione sono state aggiornate.
La tua fatturazione non è stata aggiornata.