Para transferir archivos de forma segura entre dispositivos Linux locales y remotos, una de las mejores opciones es SCP. A continuación se explica cómo utilizar SCP en Linux.

Hoy en día, existen muchas formas de transferir archivos utilizando servicios en la nube. Aun así, la forma más segura de hacerlo no es mediante Dropbox, Google Drive ni nada por el estilo.

Si desea la máxima seguridad al mover archivos de una computadora a otra, necesitará saber cómo utilizar SCP en Linux. Así es cómo.

Los conceptos básicos detrás de la copia segura (SCP)

Copia segura, o scp, es un comando de Linux que se utiliza para copiar archivos entre servidores de forma segura. Cifra esos archivos, para que nadie que espíe el tráfico de su red pueda interceptarlos y leerlos. SCP está integrado en el Protocolo Secure Shell (SSH)que normalmente utiliza el cifrado más potente disponible.

SCP ha sido tremendamente popular durante años. Es fácil de usar, muy seguro y viene preinstalado en la mayoría de las instalaciones de servidores Linux. Es posible que algunas distribuciones de escritorio, como Ubuntu, no lo tengan instalado de forma predeterminada.

Usuarios de Windows, no temáis, porque hay excelentes clientes SCP disponibles (y gratuitamente) para vosotros.

Preparándose para usar SCP en Linux

Antes de continuar, asegúrese de tener el servidor SSH instalado en su servidor Linux. Si no es así, deberá instalarlo. En Ubuntu, puedes instalar el servidor OpenSSH usando apt.

Abra Terminal en su servidor Linux. Emita el comando actualización sudo apta para asegurarse de tener las fuentes más actualizadas disponibles para la instalación. A continuación, instale openssh usando el comando sudo apt instalar el servidor openssh.

Asegúrese de que cualquier computadora en la que desee usar scp tenga un servidor SSH instalado.

Cómo SCP en Linux

Puede utilizar scp para copiar archivos desde su máquina local a una remota, desde un servidor remoto a su PC local o desde un servidor remoto a otro. Incluso es posible copiar un directorio completo usando un solo comando scp. Tanto los archivos como su contraseña están cifrados, por lo que no necesita preocuparse de que alguien que husmee su tráfico obtenga algo confidencial.

La sintaxis básica del comando scp es la siguiente:

scp [OPTION] [user@]SRC_HOST:]archivo1 [user@]DEST_HOST:]archivo2
OPCIÓN – opciones de scp como el cifrado a usar, configuración ssh, puerto ssh, límite, copia recursiva, etc.[user@]SRC_HOST:archivo1 – El archivo fuente que se está copiando. [user@]DEST_HOST:]archivo2 – El destino al que copiar el archivo.

Algunas de las opciones que puede utilizar incluyen:

-PAG – Especifica el puerto SSH del host remoto.-pag – Mantiene los tiempos de modificación y acceso a archivos.-q – Esta opción suprimirá el medidor de progreso y los mensajes que no sean de error.-C – Si incluyes este parámetro, obliga scp para comprimir los datos enviados al destino.-r – Esto dice scp para copiar los directorios de forma recursiva.

Asegúrese de tener mucho cuidado al copiar archivos que comparten el mismo nombre y ubicación en ambos sistemas. El comando scp es bastante implacable y sobrescribirá archivos sin previo aviso.

Una transferencia SCP simple entre dos computadoras

Digamos que tengo un archivo llamado resume.pdf en mi PC local y quiero copiarlo a mi servidor Linux. Para hacer esto, abriré Terminal o cualquier otra aplicación de línea de comandos y cambiaré al directorio donde guardé previamente el archivo. Incluso puede utilizar el administrador de archivos GUI de Linux para abrir el directorio directamente en la Terminal.

A continuación, ejecutaré el siguiente comando:

scp resume.pdf jeff@10.10.0.2:/home/jeff/documents/

Linux me pedirá que ingrese la contraseña de mi cuenta de usuario en el servidor remoto y luego transferirá mi archivo.

Notarás que los comandos anteriores no incluían el nombre de archivo del servidor remoto. En este caso, el comando scp utiliza automáticamente el nombre de archivo original.

La otra cosa importante a tener en cuenta es cómo se refiere a las rutas de archivos usando scp. Para la computadora local, puede usar la ruta relativa, pero debe proporcionar la ruta absoluta completa para el servidor remoto. Por ejemplo, la ruta relativa:

documentos/hojas de cálculo/presupuesto.xlsx

Podría verse así usando la ruta absoluta:

/home/jeff/documents/spreadsheets/budget.xlsx

Hacer aún más con SCP

Como se señaló, incluso puedes copiar directorios completos usando un solo comando scp. Así es como se ve.

scp -r ~/documentos/hojas de cálculo jeff@10.10.0.2:/home/jeff/documentos

Suponiendo que el directorio de hojas de cálculo aún no existe en el servidor remoto, el directorio de mi computadora local, junto con todos los archivos y directorios que contiene, se copiarán a /home/jeff/documents/ en el servidor. Aparecerá como un nuevo directorio, hojas de cálculo, dentro de mi directorio de documentos.

Por otro lado, si necesita recuperar un archivo del servidor remoto a su computadora local, puede emitir un comando como este:

scp jeff@10.10.0.2:/home/jeff/documents/resume.pdf ~/documents

Si necesita copiar archivos entre dos servidores remotos, puede hacerlo con scp. En lugar de especificar un origen o destino local, ingresará tanto el origen como el destino como servidores remotos.

scp jeff@10.10.0.2:/home/jeff/documents/resume.pdf bonner@10.10.0.5:/home/bonner/documents

En este caso, se le pedirá que ingrese las contraseñas para ambas cuentas remotas. Aunque haya emitido el comando desde su escritorio local, los datos se transferirán directamente de un host remoto a otro. Si prefiere la ruta de datos a través de la máquina en la que emitió el comando, use la opción -3:

scp -3 jeff@10.10.0.2:/home/jeff/documents/resume.pdf bonner@10.10.0.5:/home/bonner/documents

Incorporación completa de SSH y SCP en su flujo de trabajo

Deberías darte cuenta de que ssh y scp pueden ser herramientas muy poderosas ahora que sabes cómo usar SCP en Linux. Hay mucho más que los comandos son capaces de hacer más allá de lo que se cubre aquí, incluido el uso de la autenticación basada en claves SSH para conectarse a sus servidores Linux sin ingresar una contraseña.

Si se conecta regularmente a los mismos servidores, también podría considerar crear un archivo de configuración para almacenar diferentes opciones SSH para cada máquina remota a la que se conecte. Esto puede incluir todo, desde la dirección IP remota hasta los nombres de usuario correctos e incluso las opciones de línea de comandos más utilizadas.