GNU/Linux >> Tutoriales Linux >  >> Linux

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

SCP (Secure Copy) es una herramienta de línea de comandos en sistemas similares a Linux y Unix que se utiliza para transferir archivos y directorios a través de los sistemas de forma segura a través de la red. Cuando usamos el comando scp para copiar archivos y directorios de nuestro sistema local a un sistema remoto, en el backend hace conexión ssh al sistema remoto. En otras palabras, podemos decir que scp usa el mismo mecanismo de seguridad SSH en el backend, necesita una contraseña o claves para la autenticación.

En este tutorial, discutiremos el comando scp en Linux con ejemplos prácticos.

Sintaxis del comando scp:

# scp [email protected]_host:/

# scp [email protected]_host:/files  

La primera sintaxis del comando scp demuestra cómo copiar archivos o directorios del sistema local al host de destino en la carpeta específica.

La segunda sintaxis del comando scp demuestra cómo los archivos del host de destino se copian en el sistema local.

Algunas de las opciones más utilizadas en el comando scp se enumeran a continuación,

  •  -C         Activar compresión
  •  -i           Archivo de identidad o clave privada
  •  -l           limita el ancho de banda al copiar
  •  -P          número de puerto ssh del host de destino
  •  -p          Conserva los permisos, los modos y el tiempo de acceso de los archivos mientras se copian
  •  -q          Suprimir mensaje de advertencia de SSH
  •   -r          Copiar archivos y directorios de forma recursiva
  •   -v          salida detallada

¡Pasemos ahora a los ejemplos!

Ejemplo 1) Copie un archivo del sistema local al sistema remoto usando scp

Supongamos que queremos copiar el paquete jdk rpm de nuestro sistema Linux local al sistema remoto (172.20.10.8) usando el comando scp, use el siguiente comando,

[[email protected] ~]$ scp jdk-linux-x64_bin.rpm [email protected]:/opt
[email protected]'s password:
jdk-linux-x64_bin.rpm                          100%   10MB  27.1MB/s   00:00
[[email protected] ~]$

El comando anterior copiará el archivo del paquete jdk rpm al sistema remoto en la carpeta /opt.

Ejemplo 2) Copie un archivo del sistema remoto al sistema local usando scp

Supongamos que queremos copiar un archivo desde un sistema remoto a nuestro sistema local en la carpeta /tmp, ejecute el siguiente comando scp,

[[email protected] ~]$ scp [email protected]:/root/Technical-Doc-RHS.odt /tmp
[email protected]'s password:
Technical-Doc-RHS.odt                         100% 1109KB  31.8MB/s   00:00
[[email protected] ~]$ ls -l /tmp/Technical-Doc-RHS.odt
-rwx------. 1 pkumar pkumar 1135521 Oct 19 11:12 /tmp/Technical-Doc-RHS.odt
[[email protected] ~]$

 Ejemplo 3) Salida detallada al transferir archivos usando scp (-v)

En el comando scp, podemos habilitar la salida detallada usando la opción -v, usando la salida detallada podemos encontrar fácilmente qué está sucediendo exactamente en segundo plano. Esto se vuelve muy útil en la conexión de depuración , autenticación y problemas de configuración .

[email protected] ~]$ scp -v jdk-linux-x64_bin.rpm [email protected]:/opt
Executing: program /usr/bin/ssh host 172.20.10.8, user root, command scp -v -t /opt
OpenSSH_7.8p1, OpenSSL 1.1.1 FIPS  11 Sep 2018
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: Reading configuration data /etc/ssh/ssh_config.d/05-redhat.conf
debug1: Reading configuration data /etc/crypto-policies/back-ends/openssh.config
debug1: /etc/ssh/ssh_config.d/05-redhat.conf line 8: Applying options for *
debug1: Connecting to 172.20.10.8 [172.20.10.8] port 22.
debug1: Connection established.
…………
debug1: Next authentication method: password
[email protected]'s password:

Ejemplo 4) Transferir múltiples archivos a un sistema remoto

Se pueden copiar/transferir varios archivos al sistema remoto usando el comando scp de una sola vez, en el comando scp especifique los archivos múltiples separados por espacio, el ejemplo se muestra a continuación

[[email protected] ~]$ scp install.txt index.html jdk-linux-x64_bin.rpm \
 [email protected]:/mnt
[email protected]'s password:
install.txt                                      100%    0     0.0KB/s   00:00
index.html                                       100%   85KB   7.2MB/s   00:00
jdk-linux-x64_bin.rpm                            100%   10MB  25.3MB/s   00:00
[[email protected] ~]$

Ejemplo 5) Transferir archivos a través de dos hosts remotos

Usando el comando scp podemos copiar archivos y directorios entre dos hosts remotos, supongamos que tenemos un sistema Linux local que puede conectarse a dos sistemas Linux remotos, entonces desde mi sistema Linux local puedo usar el comando scp para copiar archivos en estos dos sistemas,

Sintaxis:

# scp [correo electrónico protegido]_hosts1:/  [correo electrónico protegido]_host2:/

El ejemplo se muestra a continuación,

# scp [email protected]:~/backup-Oct.zip [email protected]:/tmp
# ssh [email protected] "ls -l /tmp/backup-Oct.zip"
-rwx------. 1 root root 747438080 Oct 19 12:02 /tmp/backup-Oct.zip

Ejemplo 6) Copiar archivos y directorios recursivamente (-r)

Use la opción -r en el comando scp para copiar recursivamente todo el directorio de un sistema a otro, el ejemplo se muestra a continuación,

[[email protected] ~]$ scp -r Downloads [email protected]:/opt

Use el siguiente comando para verificar si la carpeta de descarga se copia al sistema remoto o no,

[[email protected] ~]$ ssh [email protected] "ls -ld /opt/Downloads"
drwxr-xr-x. 2 root root 75 Oct 19 12:10 /opt/Downloads
[[email protected] ~]$

Ejemplo 7) Aumente la velocidad de transferencia habilitando la compresión (-C)

En el comando scp, podemos aumentar la velocidad de transferencia al habilitar la compresión usando la opción -C, automáticamente habilitará la compresión en el origen y la descompresión en el host de destino.

[email protected] ~]$ scp -r -C Downloads [email protected]:/mnt

En el ejemplo anterior, estamos transfiriendo el directorio de descarga con la compresión habilitada.

Ejemplo 8) Limite el ancho de banda al copiar ( -l )

Use la opción '-l' en el comando scp para limitar el uso del ancho de banda durante la copia. El ancho de banda se especifica en Kbit/s, el ejemplo se muestra a continuación,

[[email protected] ~]$ scp -l 500 jdk-linux-x64_bin.rpm  [email protected]:/var

Ejemplo 9) Especifique un puerto ssh diferente mientras scp (-P)

Puede haber algún escenario en el que se cambie el puerto ssh en el host de destino, por lo que al usar el comando scp podemos especificar el número de puerto ssh usando la opción '-P'.

[[email protected] ~]$ scp -P 2022 jdk-linux-x64_bin.rpm  [email protected]:/var

En el ejemplo anterior, el puerto ssh para el host remoto es "2022"

Ejemplo 10) Conserva los permisos, modos y tiempos de acceso de los archivos mientras se copian (-p)

Use la opción "-p" en el comando scp para conservar los permisos, el tiempo de acceso y los modos mientras copia del origen al destino

[[email protected] ~]$ scp -p jdk-linux-x64_bin.rpm  [email protected]:/var/tmp
jdk-linux-x64_bin.rpm                            100%   10MB  13.5MB/s   00:00
[[email protected] ~]$

Ejemplo 11) Transferencia de archivos en modo silencioso (-q) en scp

Use la opción '-q' en el comando scp para suprimir el progreso de la transferencia, los mensajes de advertencia y de diagnóstico de ssh. El ejemplo se muestra a continuación,

[[email protected] ~]$ scp -q -r Downloads [email protected]:/var/tmp
[[email protected] ~]$

Ejemplo 12) Use el archivo de identificación en scp mientras transfiere (-i)

En la mayoría de los entornos Linux, se prefiere la autenticación basada en claves. En el comando scp, especificamos el archivo de identificación o el archivo de clave privada usando la opción '-i', el ejemplo se muestra a continuación,

[[email protected] ~]$ scp -i my_key.pem -r Downloads [email protected]:/root

En el ejemplo anterior, "my_key.pem" es el archivo de identidad o el archivo de clave privada.

Ejemplo 13) Usar un archivo 'ssh_config' diferente en scp (-F)

Hay algunos escenarios en los que usa diferentes redes para conectarse a sistemas Linux, puede ser que alguna red esté detrás de servidores proxy, por lo que en ese caso debemos tener diferentes ssh_config archivo.

Se especifica un archivo ssh_config diferente en el comando scp a través de la opción '-F', el ejemplo se muestra a continuación

[[email protected] ~]$ scp -F /home/pkumar/new_ssh_config -r Downloads \ 
[email protected]:/root
[email protected]'s password:
jdk-linux-x64_bin.rpm                     100%   10MB  16.6MB/s   00:00
backup-Oct.zip                            100%  713MB  41.9MB/s   00:17
index.html                                100%   85KB   6.6MB/s   00:00
[[email protected] ~]$

Ejemplo 14) Usar un cifrado diferente en el comando scp (-c)

De forma predeterminada, scp utiliza el cifrado 'AES-128' para cifrar los archivos. Si desea usar otro cifrado en el comando scp, use la opción '-c' seguida del nombre del cifrado,

Supongamos que queremos usar el cifrado '3des-cbc' en el comando scp al transferir los archivos, ejecute el siguiente comando scp

[[email protected] ~]# scp -c 3des-cbc -r Downloads [email protected]:/root

Use el siguiente comando para enumerar los cifrados ssh y scp,

[[email protected] ~]# ssh -Q cipher localhost | paste -d , -s -
3des-cbc,aes128-cbc,aes192-cbc,aes256-cbc,[email protected],\
aes128-ctr,aes192-ctr,aes256-ctr,[email protected],[email protected],\
[email protected]
[[email protected] ~]#

Eso es todo de este tutorial, para obtener más detalles sobre el comando scp, consulte su página de manual. Comparta sus opiniones y comentarios en la sección de comentarios a continuación.

Leer también11 ejemplos de comandos 'df' en Linux


Linux
  1. Comando de apagado de Linux (con ejemplos)

  2. Ejemplos prácticos del comando rsync en Linux

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

  4. Cómo transferir archivos de forma segura usando el comando SCP en Linux

  5. Ejemplos de comandos "apagar" en Linux

Ejemplos de Rsync para transferir archivos en Linux

Ejemplos útiles de comandos Wget en el sistema Linux

15 ejemplos útiles de comandos táctiles en el sistema Linux

Comando SCP de Linux para transferir archivos de forma segura

Comando lsof en Linux con ejemplos

Comando Linux comm con ejemplos