GNU/Linux >> Tutoriales Linux >  >> Linux

Explicación del comando SCP de Linux:copiar y transferir archivos de forma segura {13 ejemplos}

Introducción

SCP (Protocolo de copia segura) es un protocolo de red utilizado para copiar archivos/carpetas de forma segura entre sistemas Linux (Unix) en una red. Para transmitir, use el scp utilidad de línea de comandos, una variante más segura del comando cp (copiar).

SCP protege sus datos mientras los copia a través de una conexión SSH (Secure Shell) cifrando los archivos y las contraseñas. Por lo tanto, incluso si se intercepta el tráfico, la información sigue cifrada.

Utilice SCP cuando:

  • Copiar archivos de un host local a un host remoto.
  • Copiar archivos de un host remoto a un host local.
  • Copiando archivos entre dos servidores remotos.

Esta guía le muestra cómo copiar archivos usando el comando SCP e incluye 13 ejemplos del comando que se usa en la práctica .

Requisitos previos

  • Un inicio de sesión de shell seguro en el servidor
  • (opcional) Acceso raíz tanto en el cliente como en el servidor
  • Un inicio de sesión de shell seguro en el sistema del servidor

Sintaxis del comando SCP

La sintaxis para usar scp el comando es:

scp [option] [[email protected]_host:path/to/source/file] [[email protected]_host:target/path] 

Si omite:

  • el nombre_de_usuario del host (o destino), el comando predeterminado es el usuario actual.
  • la ruta/hacia/la fuente (o el destino/ruta ) del comando, el programa busca (o copia) el archivo localmente.

Cuando trabaje con archivos remotos, especifique siempre las especificaciones del usuario y del host.

Asegúrese de usar una cuenta con acceso de lectura a los archivos que desea copiar en el sistema de origen. Además, debe usar una cuenta con acceso de escritura al directorio donde se guardarán los archivos en el sistema de destino.

Opciones de comando SCP

Puede agregar muchos scp opciones de comando al comando para personalizar y acelerar el proceso. Las opciones se agregan como atributos justo después de scp comando.

Cada opción tiene una forma corta de un solo carácter y un equivalente descriptivo más largo.

Ejemplos de comandos SCP

Para comprender mejor esta útil utilidad, eche un vistazo al siguiente scp ejemplos de comandos.

Copiar un archivo del servidor local al remoto

En el siguiente ejemplo, copiamos un archivo de muestra de un host local a un servidor remoto:

scp Desktop/sample_example.txt [email protected]:/home/remote_dir 

El comando incluye la siguiente información:

  • Desktop/sample_example.txt - el nombre del archivo que se copia y su ubicación.
  • [email protected] - el nombre de usuario y la dirección IP del servidor remoto.
  • /home/remote_dir – la ubicación donde almacenar el archivo copiado.

Copiar un archivo desde un servidor remoto al host local

Para copiar un archivo de muestra de un host remoto a un host local, ejecutamos:

scp 147.182.143.27:/home/remote_dir/sample_example.txt home/Desktop

La información proporcionada es

  • [email protected] - el nombre de usuario y la dirección IP del servidor remoto desde donde se encuentra actualmente el archivo.
  • /home/remote_dir/sample_example.txt - el nombre del archivo que se copia y su ubicación.
  • home/Desktop – la ubicación donde almacenar el archivo copiado.

Copiar un archivo de un servidor remoto a otro

A continuación, veamos cómo copiar un archivo de un servidor remoto a otro servidor remoto usando el scp comando:

scp [email protected]:/home/remote_dir/sample_example.txt [email protected]:home/Desktop

El comando anterior especifica:

  • [email protected] - el nombre de usuario y la dirección IP del servidor remoto desde donde se encuentra actualmente el archivo.
  • /home/remote_dir/sample_example.txt - el nombre del archivo que se copia y su ubicación.
  • [email protected] – el nombre de usuario y la dirección IP del servidor remoto donde queremos copiar el archivo.
  • home/Desktop – la ubicación donde almacenar el archivo copiado en el servidor remoto.

Copiar varios archivos con SCP

SCP le permite copiar varios archivos en un solo comando. Por ejemplo, el siguiente comando copia dos archivos de un host local a un servidor remoto:

scp example/sample1.txt example/sample2.txt [email protected]:/home/remote_dir

Incluye la siguiente información:

  • example/sample1.txt – el nombre y la ubicación del primer archivo que se está copiando.
  • example/sample2.txt – el nombre y la ubicación del segundo archivo que se está copiando.
  • [email protected] - el nombre de usuario y la dirección IP del servidor remoto que recibe los archivos.
  • /home/remote_dir - la ubicación donde almacenar los archivos copiados en el servidor remoto.

Copiar una carpeta del host local al servidor remoto de forma recursiva

Aparte de los archivos, scp también puede copiar carpetas de forma segura hacia o desde servidores remotos. El siguiente comando muestra cómo copiar un directorio de muestra a un servidor remoto de forma recursiva:

scp -r example [email protected]:/home/remote_dir

El comando incluye:

  • -r – la opción para copiar la carpeta recursivamente.
  • example – el nombre de la carpeta que se está copiando desde el servidor local.
  • [email protected] - el nombre de usuario y la dirección IP del servidor remoto que recibe la carpeta.
  • /home/remote_dir - la ubicación donde almacenar la carpeta copiada en el servidor remoto.

Copiar un archivo con SCP usando un puerto específico

De manera predeterminada, SCP usa el puerto 22. Sin embargo, si un sistema remoto está configurado para escuchar solicitudes SSH en un puerto diferente, use el –P cambie para especificar el puerto.

Por ejemplo, el siguiente comando copia un archivo de un servidor local a uno remoto, utilizando el puerto 2222:

scp -P 2222  Desktop/sample_example.txt [email protected]:/home/remote_dir

Los componentes del comando anterior son:

  • -P 2222 – usa el puerto 2222.
  • Desktop/sample_example.txt - el nombre del archivo que desea copiar y su ubicación.
  • [email protected] - el nombre de usuario y la dirección IP del servidor remoto que recibe el archivo.
  • /home/remote_dir - la ubicación donde almacenar el archivo copiado en el servidor remoto.

Copiar un archivo con SCP en modo silencioso

Ejecutando un scp El comando en modo silencioso significa deshabilitar el medidor de progreso y los mensajes que no son de error para que no se muestren en la salida. Para hacerlo, debe agregar el -q opción:

scp -q Desktop/sample_example.txt [email protected]:/home/remote_dir

Copiar un archivo con SCP en modo detallado

Puede ejecutar scp en modo detallado agregando -v opción que establece el nivel de depuración en 2. Al hacerlo, imprime información de depuración en la salida que puede ayudarlo a solucionar problemas.

Agrega el -v opción después de scp para habilitar el modo detallado, como en el siguiente ejemplo:

scp -v Desktop/sample_example.txt [email protected]:/home/remote_dir

Copiar un archivo con SCP y limitar el ancho de banda

Otra opción útil es limitar el ancho de banda utilizado por scp comando agregando -l parámetro. Esto es especialmente útil cuando se copian archivos grandes para evitar que SCP agote el ancho de banda.

Al limitar el ancho de banda, debe especificar el número en Kilobits/s. Tenga en cuenta que 1 byte =8 bits. Por lo tanto, si desea limitar el ancho de banda para SCP a 100 KB/s, el valor de l en kbps sería 800 (100 x 8), como en el siguiente comando:

scp -l 800 Desktop/sample_example.txt [email protected]:/home/remote_dir

Copiar un archivo con SCP más rápido

Para acelerar la transferencia de archivos de un servidor a otro, agregue el -C opción que comprime el archivo mientras se transfiere. Una vez que el archivo llega a su destino, vuelve a su tamaño normal.

scp -C Desktop/sample_example.txt [email protected]:/home/remote_dir

Copiar un archivo con SCP utilizando un cifrado específico

De manera predeterminada, SCP usa AES-128 para cifrar archivos. Sin embargo, el -c La opción le permite cambiar el cifrado que SCP utilizará para cifrar el archivo.

Por ejemplo, para aumentar la seguridad, puede cambiar al cifrado 3des, como en el siguiente ejemplo:

scp -c 3des Desktop/sample_example.txt [email protected]:/home/remote_dir

Copiar un archivo con SCP usando IPv4 o IPv6

Puede obligar a SCP a usar solo IPv4 o IPv6 según sus necesidades agregando -4 o -6 atributo.

Para copiar un archivo de muestra de un servidor local a un host remoto solo usando IPv6, ejecutaría:

scp -6 Desktop/sample_example.txt [email protected]:/home/remote_dir

Copiar un archivo con SCP conservando los atributos del archivo

Para copiar un archivo con SCP y conservar los atributos del archivo, como los tiempos de modificación y acceso, los modos y los permisos, use -p opción:

scp -p Desktop/sample_example.txt [email protected]:/home/remote_dir

Linux
  1. 14 ejemplos de comandos SCP para transferir archivos de forma segura en Linux

  2. Copiar archivos y directorios en Linux

  3. Cómo copiar archivos de forma segura entre hosts Linux utilizando SCP y SFTP

  4. Comando SCP Linux:cómo transferir archivos SSH de remoto a local

  5. Cómo transferir archivos de forma segura usando SCP

Cómo copiar archivos en Linux usando el comando CP

4 formas de transferir archivos y directorios en Linux

Comando Arping en Linux explicado

Comando SCP de Linux para transferir archivos de forma segura

Copie archivos de forma segura con el comando SCP

A propósito de los comandos de Linux explicados {con ejemplos}

    -1 Usar el protocolo 1.
    -2 Usar el protocolo 2.
    -4 Use solo direcciones Ipv4.
    -6 Use solo direcciones IPv6.
    -B Ejecutar en modo por lotes, deshabilitando todas las consultas para la entrada del usuario.
    -b buffer_size Especifique el tamaño del búfer utilizado para la transferencia de datos. Si no se especifica, utiliza el valor predeterminado:32768 bytes.
    -C Habilitar compresión.
    -c cipher Seleccione el cifrado para el cifrado de datos. Si no se especifica, SCP usa el valor predeterminado:'AnyStdCipher'.
    -D debug_level Establezca el nivel de depuración (1, 2, 3 o 99).
    -d Copie el archivo, solo si el directorio de destino ya existe.
    -F file Especifique un archivo de configuración alternativo para SSH .
    -h Mostrar una lista de opciones de comando.
    -i file Especifique el archivo del que leer la identidad para la autenticación de clave pública.
    -l limit Limite el ancho de banda (especifique el límite en kbit/s).
    -o ssh_option Establecer opciones para SSH en formato ssh_config.
    -P port Especifique el puerto al que conectarse. Si no se especifica, SCP usa el puerto 22.
    -q Ejecute SCP en modo silencioso.
    -Q Deshabilitar la visualización de cualquier estadística de transferencia de archivos.
    -r Copia recursivamente.
    -S program Utilice un programa específico para la conexión cifrada.
    -u Elimine el archivo de origen una vez que se complete la copia.
    -v Habilite el modo detallado, que establece el nivel de depuración en 2.