Como Hacerlo PC & Software

Cómo Usar el Comando SCP (Copia Segura o Secure Copy) en Linux

Hoy en día, hay muchas formas de transferir archivos utilizando servicios en la nube. Aun así, la forma más segura de hacerlo no es usando Dropbox, Google Drive o algo parecido.

Si quieres la máxima seguridad al mover archivos de un ordenador a otro, necesitarás saber cómo hacer SCP en Linux. A continuación te explicamos cómo hacerlo.

Lo básico detrás de la copia segura (Secure Copy: SCP)

Secure Copy, o scp, es un comando de Linux utilizado para copiar archivos entre servidores de forma segura. Encripta esos archivos, para que nadie que espíe el tráfico de tu red pueda interceptarlos y leerlos. SCP está integrado en el protocolo Secure Shell (SSH), que suele utilizar 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. Algunas distribuciones de escritorio, como Ubuntu, pueden no tenerlo instalado por defecto.

Los usuarios de Windows, no teman, porque hay excelentes clientes SCP disponibles (y gratuitos) para ustedes.

Preparando el uso de SCP en Linux

Antes de seguir adelante, asegúrate de que tienes el servidor SSH instalado en tu servidor Linux. Si no lo está, tendrá que instalarlo. En Ubuntu, puedes instalar el servidor OpenSSH usando apt.

  1. Abra el Terminal en su servidor Linux.
  2. Emita el comando sudo apt update para asegurarse de que tiene las fuentes más actuales disponibles para la instalación.
  3. A continuación, instale openssh con el comando sudo apt install openssh-server.

Asegúrate de que cualquier ordenador en el que quieras usar scp tiene un servidor SSH instalado.

Cómo Usar el Comando SCP en Linux

Puedes utilizar scp para copiar archivos de tu máquina local a una remota, de un servidor remoto a tu PC local o de un servidor remoto a otro. Incluso es posible copiar un directorio entero con un solo comando scp. Tanto los archivos como tu contraseña están encriptados, por lo que no tienes que preocuparte de que alguien que husmee tu tráfico consiga algo sensible.

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

scp [OPTION] [[email protected]]SRC_HOST:]file1 [[email protected]]DEST_HOST:]file2
  • OPTION – opciones de scp como el cifrado a utilizar, la configuración de ssh, el puerto ssh, el límite, la copia recursiva, etc.
  • [[email protected]]SRC_HOST:file1 – El archivo fuente que se está copiando.
  • [[email protected]]DEST_HOST:]file2 – El destino para copiar el archivo.

Algunas de las opciones que puedes utilizar son:

  • -P – Especifica el puerto SSH del host remoto.
  • -p – Mantiene los tiempos de modificación y acceso a los archivos.
  • -q – Esta opción suprimirá el medidor de progreso y los mensajes que no sean de error.
  • -C – Si incluye este parámetro, obliga a scp a comprimir los datos enviados al destino.
  • -r – Esto le dice a scp que copie los directorios recursivamente.

Asegúrate de tener mucho cuidado cuando copies archivos que comparten el mismo nombre y ubicación en ambos sistemas. El comando scp es bastante implacable, y sobrescribirá los archivos sin ninguna advertencia.

Una simple transferencia SCP entre dos ordenadores

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

A continuación, ejecutaré el siguiente comando:

scp resume.pdf [email protected]:/home/jeff/documents/

Linux me pedirá que introduzca 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 del 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 los archivos usando scp. Para el equipo local, puede utilizar la ruta relativa, pero debe proporcionar la ruta absoluta completa para el servidor remoto. Por ejemplo, la ruta relativa:

  • documents/spreadsheets/budget.xlsx

Podría verse así usando la ruta absoluta:

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

Hacer aún más con SCP

Como se ha señalado, incluso puede copiar directorios enteros utilizando un solo comando scp. Así es como se ve.

scp -r ~/documents/spreadsheets [email protected]:/home/jeff/documents

Suponiendo que el directorio de hojas de cálculo aún no existe en el servidor remoto, el directorio de mi ordenador local, junto con todos los archivos y directorios que contiene, se copiará 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 necesitas recuperar un archivo del servidor remoto a tu ordenador local, podrías emitir un comando como este

scp [email protected]:/home/jeff/documents/resume.pdf ~/documents

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

scp [email protected]:/home/jeff/documents/resume.pdf [email protected]:/home/bonner/documents

En este caso, se le pedirá que introduzca las contraseñas de ambas cuentas remotas. Aunque hayas emitido el comando desde tu escritorio local, los datos se transferirán directamente de un host remoto al otro. Si prefieres que los datos pasen por la máquina en la que has emitido el comando, utiliza la opción -3:

scp -3 [email protected]:/home/jeff/documents/resume.pdf [email protected]:/home/bonner/documents

Incorporación total de SSH y SCP a su flujo de trabajo

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

Si te conectas regularmente a los mismos servidores, también puedes considerar crear un archivo de configuración para almacenar diferentes opciones SSH para cada máquina remota a la que te conectes. 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 utilizadas habitualmente.

Acerca del Autor

Andrés Villanueva

Fundador de MentePrincipiante, Andrés es apasionado de la tecnología y de todo lo que tiene un botón de encendido, pasa la mayor parte de su tiempo desarrollando nuevas habilidades y aprendiendo más sobre el mundo de la tecnología.

Con una sólida experiencia en la construcción de PCs y en el desarrollo de software, y con una completa experiencia en dispositivos táctiles, ¡está constantemente atento a lo último y lo mejor!

Agregar un Comentario

Clic Aqui para Publicar un Comentario