Cómo usar el comando scp para transferir archivos de forma segura en Linux

Suponga que desea transferir algunos archivos entre servidores en un sistema Linux. Hay muchas maneras de realizar la tarea, pero si su prioridad es transferir archivos de forma segura, le quedan algunas opciones. La solución más sencilla es usar el comando scp o copia segura para transferir sus archivos sin preocuparse por la seguridad. En este artículo, explicaremos cómo usar la transferencia de archivos de forma segura usando el comando scp en su sistema Linux. Tabla de contenido

¿Qué es el comando scp en Linux?

Cuando se trata de transferir archivos a través de una red segura, el comando scp puede ser muy útil. Significa Protocolo de copia segura y transfiere archivos y directorios entre dos sistemas a través de una conexión SSH (Secure Shell). Con ssh, puede estar seguro de la seguridad de sus archivos, ya que están cifrados de forma predeterminada. En términos más simples, el comando scp es una versión más segura del comando cp, sobre el que puede leer todo en nuestro artículo de comandos de Terminal de Linux .

Cómo usar el comando scp: sintaxis y opciones

Antes de que podamos transferir archivos a través de scp, veamos la sintaxis y las opciones del comando aquí:

Si quieres seguir leyendo este post sobre "[page_title]" dale click al botón "Mostrar todo" y podrás leer el resto del contenido gratis. aiso.la es un sitio especializado en Tecnología, Noticias, Juegos y gran cantidad de temas que te pueden interesar. Si quieres leer más información similar a [page_title], no dudes de sguir navegando por la web y suscribirte a las notificaciones del Blog y no perderte las últimas novedades.

Seguir leyendo


scp

Entendiendo la sintaxis:

  • Primero, especifica el sistema ‘fuente’ desde donde necesita transferir sus archivos/directorios.
  • Segundo, especifica el sistema ‘objetivo’ al que desea transferir sus archivos/directorios.

Si deja cualquiera de los parámetros anteriores, el comando scp en Linux primero buscará el archivo y luego lo copiará localmente. Algunas de las opciones para emparejar con el mando son:

Opciones Destino
-P Especifica qué puerto conectar con el sistema host. Si se omite, utilizará el puerto 22 de forma predeterminada.
-p Conserva las horas de modificación, las horas de acceso y los modos del archivo original cuando se copia al sistema de destino.
-r Copia todo el directorio en el sistema de destino de forma recursiva.
-J Se utiliza para conectar el sistema de origen y el sistema de destino a través de un sistema proxy (host de salto).
-3 cuando se usa este indicador, copia los archivos tanto en el sistema de destino como en el sistema local
-4 fuerza al comando scp a usar solo direcciones IPv4.
-6 fuerza al comando scp a usar solo direcciones IPv6.

Cómo copiar archivos usando el comando scp

Antes de usar el comando scp en Linux, hay algunos requisitos previos que debe cumplir tanto en el sistema host como en el de destino:

  • ssh debe estar instalado
  • acceso root o cualquier usuario con privilegios sudo

Copie archivos del host local al destino remoto

Si tiene un archivo que necesita transferir desde su sistema local a un destino remoto, debe usar la siguiente sintaxis:

scp @:

Si la sintaxis anterior puede parecer complicada, un ejemplo lo aclarará:

scp test.txt [email protected]:/home/remote2/Documents/

En el ejemplo anterior:

  • test.txt es el nombre del archivo a transferir y está ubicado en el directorio actual del sistema local.
  • test es el nombre de usuario en el sistema de destino.
  • 139.144.11.105 es la dirección IP del sistema de destino.
  • /home/remote2/Documents/ es la ubicación en el sistema de destino donde se guardará el archivo transferido.

Copie archivos del host remoto al destino local

Si necesita transferir un archivo desde un host remoto a su máquina local, use la siguiente sintaxis del comando scp en su sistema Linux:

scp @:

Por ejemplo, digamos que necesita transferir un archivo llamado test.py desde el servidor remoto en el que está trabajando, use este comando:

scp [email protected]:/home/test/test1.py ~/test1.py

En este ejemplo:

  • test es el nombre de usuario del host remoto.
  • 10.10.11.113 es la dirección IP del host remoto.
  • /home/test/test1.py es la ruta del archivo que se transferirá desde el host remoto.
  • ~/test1.py es el nombre del archivo después de que se transfiera a la máquina local y se almacene en el directorio de inicio.

Transferir archivos de un host remoto a otro destino remoto

Con el comando scp, no solo puede transferir archivos entre su sistema local y una máquina remota, sino también transferir archivos entre dos sistemas remotos. Pero, antes de poder transferir archivos de un sistema remoto a otro, se recomienda generar una clave ssh privada y una clave ssh pública en el sistema de origen y almacenar una copia de la clave pública en el sistema de destino.

En general, los usuarios se quejan del error “Error en la verificación de la clave del host” al transferir archivos entre dos sistemas remotos. Para evitar el error, use una tecla ssh como medida adicional. Hemos explicado cómo puede hacerlo aquí mismo:

1. Genere un par de claves pública/privada en el servidor de origen con este comando:

ssh-keygen -t

2. Para los algoritmos de cifrado, puede usar ” rsa “, que es el algoritmo más utilizado o cualquier otro algoritmo de su elección.

3. Luego, se le pedirá que elija la ubicación para almacenar la clave ssh. Puede almacenarlo en cualquier ubicación de su elección o en la ubicación predeterminada.

4. Para la frase de contraseña, puede ingresar cualquier cosa que desee o dejarla en blanco presionando Intro.

5. Luego, copie la clave pública en el servidor de destino usando el siguiente comando. Con esto, incluso puede iniciar sesión en el sistema de destino sin una contraseña usando ssh.

ssh-copy-id @

Nota: el método de inicio de sesión sin contraseña solo funcionará para el usuario para el que haya generado la clave ssh.

6. Una vez que haya creado y almacenado la clave ssh en el servidor remoto, use esta sintaxis de comando scp para intercambiar archivos entre dos sistemas remotos que ejecutan Linux:

scp @: @:

Digamos que necesita transferir un archivo llamado test.txt de un host remoto a otro receptor remoto, use el comando:

scp [email protected]:/home/test1/test.txt [email protected]:/home/remote2/Documents/test1.txt

En este ejemplo:

  • remote1 es el nombre del usuario en el host del remitente remoto
  • 10.10.11.113 es la dirección IP del host del remitente remoto
  • /home/test1/test.txt es la ruta al archivo a enviar
  • remote2 es el nombre del usuario en el destino del receptor remoto
  • 10.11.27.111 es la dirección IP del destino del receptor remoto
  • /home/remote2/Documents/test1.txt es el nombre y la ruta que se guardará para recibir el archivo.

Transferir varios archivos con el comando scp

Transferir varios archivos uno por uno puede ser una tarea tediosa para cualquiera. En su lugar, puede usar la siguiente sintaxis para intercambiar archivos usando el comando scp en Linux:

scp @:

Por ejemplo, suponga que necesita enviar cuatro archivos, incluidos test1.txt, test2.py, test3.sh y test4.c, a un receptor remoto, puede usar el siguiente comando:

scp -P 22 test1.txt test2.py test3.sh test4.c [email protected]:/home/remote_1/Documents

Entendamos cómo funciona el comando en el ejemplo y qué hace:

  • -p 2222 se utiliza para especificar la conexión a través del puerto 22
  • test1.txt test2.py test3.sh test4.c son el nombre de los archivos a transferir
  • remote_1 es el nombre de usuario del sistema receptor
  • 10.10.11.113 es la dirección IP del receptor
  • /home/remote_1/Documents se refiere a la ruta para almacenar el archivo recibido.

Incluso puede usar comodines para enviar varios archivos con la misma extensión, como se muestra a continuación:

scp . @:

Por ejemplo, si necesita enviar todos los archivos .py a un servidor remoto, use el siguiente comando scp en la terminal de Linux:

scp *.py [email protected]:/home/remote_1/

Aquí,

  • *.py significa todos los archivos de python
  • remote1 es el nombre de usuario del receptor
  • 10.10.11.113 es la dirección IP del receptor
  • /home/remote_1/ es la ubicación para almacenar el archivo recibido

Transferir archivos de forma segura usando el comando scp en Linux

En algún momento, cada usuario necesita intercambiar algunos archivos a través de la red. El comando scp facilita la transferencia de archivos de manera segura y eficiente incluso en una red de alta latencia. Seguramente, conocer las diversas opciones y sintaxis de scp también puede ser útil. También puede consultar nuestras guías sobre cómo cambiar el nombre de un archivo en Linux y cómo eliminar un archivo en Linux para mejorar aún más sus habilidades de administración de archivos en el sistema operativo. Esperamos que este artículo le haya ayudado a aprender a usar el comando scp para transferir archivos en computadoras con Linux. Si tiene algún problema al usar el comando, háganoslo saber en la sección de comentarios.

Preguntas frecuentes

¿Es segura la transferencia de archivos SCP?

El Protocolo de copia segura o scp es un protocolo que se basa en la tecnología SSH y utiliza el cifrado y la autenticación para el intercambio de archivos entre dos hosts. Esto garantiza la completa seguridad e integridad de los datos entre los dos hosts.

¿Es SCP más seguro que SFTP?

Tanto los protocolos SCP como SFTP están a la par en términos de seguridad. La principal ventaja de usar scp sobre SFTP son las rápidas velocidades de transferencia que son especialmente útiles en redes de alta latencia.

Scroll al inicio