GNU/Linux >> Tutoriales Linux >  >> Linux

Cómo transferir archivos de forma segura usando SCP

SCP significa copia segura. Es una utilidad de línea de comandos de Linux que se utiliza para copiar de forma segura archivos y directorios entre servidores. SCP utiliza el protocolo SSH, por lo que requiere una contraseña o autenticación sin contraseña entre servidores. Con SCP, puede copiar archivos entre dos hosts remotos desde su sistema local, así como copiar archivos entre hosts locales y remotos.

En este tutorial, le mostraremos cómo usar el comando SCP con ejemplos.

Requisitos

  • Un Ubuntu 18.04 VPS nuevo en Atlantic.net Cloud Platform.
  • Una contraseña raíz configurada en su servidor.

Crear servidor en la nube de Atlantic.Net

Primero, inicie sesión en su servidor en la nube de Atlantic.Net. Cree un nuevo servidor, eligiendo Ubuntu 18.04 como sistema operativo con al menos 1 GB de RAM. Conéctese a su servidor en la nube a través de SSH e inicie sesión con las credenciales resaltadas en la parte superior de la página.

Una vez que haya iniciado sesión en su servidor Ubuntu 18.04, ejecute el siguiente comando para actualizar su sistema base con los últimos paquetes disponibles.

apt-get update -y

1. Sintaxis SCP

La sintaxis básica del comando SCP se muestra a continuación:

scp [opción] [email protected]:/archivo_o_directorio [email protected]:/directorio

usuario: Nombre del usuario.
ip-fuente: Dirección IP del sistema desde donde desea copiar archivos o directorios.
dest-ip: Dirección IP del sistema de destino del sistema.

Algunas de las opciones utilizadas en el comando scp se enumeran a continuación:

-P: Especifique el número de puerto ssh del host de destino.
-r: Se utiliza para copiar archivos y directorios de forma recursiva.
-v: Se utiliza para mostrar resultados detallados durante la transferencia de archivos.
-C: Se usa para habilitar la compresión de archivos.
-i: Especifique la clave SSH.
-l: Se utiliza para limitar el ancho de banda durante la copia.
-p: Se utiliza para conservar los permisos, los modos y el tiempo de acceso de los archivos mientras se copian.

2. Copiar un archivo de host local a remoto

Si desea copiar un archivo llamado /etc/rc.local desde localhost al host remoto (172.20.10.3) en el directorio /mnt, ejecute el siguiente comando:

scp /etc/rc.local [email protected]:/mnt/

Debería ver el siguiente resultado:

Contraseña de
[email protected]:rc.local                                                                             100 %  306     0.3 KB:/s 

Si desea copiar varios archivos (en este ejemplo, usaremos /etc/fstab y /etc/hosts, y cópielos en el host remoto (172.20.10.3) en el directorio /mnt), ejecute el siguiente comando:

scp /etc/fstab /etc/hosts [email protected]:/mnt/

Debería ver el siguiente resultado:

 Ejemplo@unixlinux. Contraseña de la línea:FSTAB 100%628 0.6kb/s 00:00 Hosts 100%249 0.2kb/s 00:00 

3. Copia de archivos y directorios de forma recursiva

Puede usar la opción recursiva -r con SCP para copiar todo el directorio de un sistema a otro.

Por ejemplo, para copiar el directorio llamado /var/log/apache2 desde localhost al host remoto (172.20.10.3) en el directorio /mnt recursivamente, ejecute el siguiente comando:

scp -r /var/log/apache2 [email protected]:/mnt/

Debería ver el siguiente resultado:

 [email protected]'s contraseña:error.log 100%0 0.0kb/s 00:00 Access.log.3.gz 100%61kb 61.3kb/s 00:00 Otros_vhosts_access.log 100%0 0.0kb/s 00:00 Access.log.4.gz 100% 317 0.3kb/s 00:00 Error.log.3.gz 100% 1622 1.6kb/s 00:00 Error. :00 Access.log 100% 0 0.0kb/s 00:00 Access.log.1 100% 1287 1.3kb/s 0 0:00 Access.log.2.gz 100%239 0.2kb/s 00:00 Error. s   00:00   error.log.4.gz                                                                        100 % 2296     2,2 KB/s   00:00

También puede usar la opción -v con SCP para mostrar una salida detallada durante el proceso de copia:

scp -vr /var/log/apache2 [email protected]:/mnt/

4. Copiar archivo de host remoto a local

Si desea copiar un archivo llamado /etc/hostname del host remoto (172.20.10.3) al host local en el directorio /opt, ejecute el siguiente comando:

scp [email protected]:/etc/nombre de host /opt/

Debería ver el siguiente resultado:

 [email protected]'s Password:Nombre de host 100%6 0.0kb/s 00:00 

5. Copiar archivo de un host remoto a otro host remoto

Para copiar archivos y directorios entre dos hosts remotos, deberá configurar la autenticación basada en clave SSH entre ambos hosts remotos.

Después de configurar la autenticación basada en claves, copie un directorio llamado /var/log de un host remoto (172.20.10.3) al otro host remoto (172.20.10.4) en el directorio /mnt, ejecute el siguiente comando:

scp -r [email protected]:/var/log [email protected]:/mnt/

6. Limitación del uso del ancho de banda durante la copia

Puede usar la opción -l con SCP para limitar el ancho de banda durante el proceso de copia.

Por ejemplo, para copiar un archivo llamado google-chrome-stable_current_amd64.deb de localhost al host remoto (172.20.10.3) en el directorio /opt y limitar el ancho de banda a 1000 KB/seg (1000×8), ejecute el siguiente comando:

scp -l 8000 /home/vyom/Downloads/google-chrome-stable_current_amd64.deb  [email protected]:/opt/

Debería ver el siguiente resultado:

Contraseña de
[email protected]:google-chrome-stable_current_amd64.deb                                                                     100 %   60 MB   1,0 MB:0    

7. Especificar puerto específico con SCP

En algunos casos, el puerto SSH es diferente en el host de destino. En este caso, puede usar la opción -P para especificar el puerto SSH.

Por ejemplo, para copiar un archivo llamado /etc/hosts en el sistema local al host remoto (172.20.10.3) en el directorio /mnt usando el puerto 8088, ejecute el siguiente comando:

scp -P 8088 /etc/hosts [email protected]:/mnt/

8. Habilitación de la compresión durante la copia

Puede usar la opción -C con SCP para habilitar la compresión en el origen y la descompresión en el host de destino. Esto puede aumentar la velocidad de transferencia en archivos grandes.

Por ejemplo, para copiar un directorio /var/log/nginx en el host local al host remoto (172.20.10.3) en el directorio /mnt con compresión, ejecute el siguiente comando:

scp -r -C /var/log/nginx [email protected]:/mnt/

Debería ver el siguiente resultado:

 Ejemplo@unixlinux. Contraseña de la línea:Error.log 100%0 0.0kb/s 00:00 Acceso. /S 00:00 Acceso. LOG 100%0 0.0kb/s 00:00 Access.log.1 100%90 0.1kb/s 00:00 Access.log.2.gz 100%239 0.2kb/s 00:00 

9. Conservar permisos, modos y tiempo de acceso de archivos mientras se copia

Puede usar la opción -p con SCP para conservar los permisos, el tiempo de acceso y los modos durante el proceso de copia.

Por ejemplo, para copiar un archivo llamado magento-ce-2.3.5-p1-2020-04-24-08-59-28.tar.bz2 en el host local al host remoto (172.20.10.3) en el directorio /mnt y conservar los permisos, el tiempo de acceso y los modos, ejecute el siguiente comando:

scp -p /home/vyom/Descargas/magento-ce-2.3.5-p1-2020-04-24-08-59-28.tar.bz2 [email protected]:/mnt/

Debería ver el siguiente resultado:

 [email protected]'s contraseña:magento-ce-2.3.5-p1-2020-04-24-08-59-28.tar.bz2 100%112mb 55.9mb/s 00:02 

Conclusión

En la guía anterior, aprendió a usar SCP para transferir archivos y directorios de forma segura de un servidor a otro. ¡Comience hoy mismo con SCP en una cuenta de alojamiento VPS con Atlantic.Net!


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

  2. Transfiera archivos y carpetas de forma segura entre computadoras usando Croc

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

  4. Cómo transferir archivos entre servidores en Linux usando SCP y FTP

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

Cómo eliminar archivos de forma segura usando el comando Shred en Debian 10

Cómo transferir archivos de forma segura entre sistemas Ubuntu usando Croc

Comando SCP de Linux para transferir archivos de forma segura

Cómo:Comandos SFTP:transferir archivos de forma segura a un servidor remoto

Transferir archivos usando WinSCP

Cómo eliminar archivos de forma segura usando el comando Shred en Debian 11