logo

Cómo copiar archivos de forma segura en Linux | Comando scp

scp El comando (copia segura) en el sistema Linux se utiliza para copiar archivos entre servidores de forma segura. El comando SCP o copia segura permite la transferencia segura de archivos entre el host local y el host remoto o entre dos hosts remotos. Utiliza la misma autenticación y seguridad que se utiliza en el Protocolo Secure Shell (SSH) . SCP es conocido por su simplicidad, seguridad y disponibilidad preinstalada.

Sintaxis del comando scp en Linux

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



scp [options] [[user@]host1:]source_file_or_directory ... [[user@]host2:]destination>

En esta sintaxis:

  • options> : Estas son varias opciones que modifican el comportamiento del comando SCP, como por ejemplo-i>para especificar un archivo de identidad,-l>para limitar el ancho de banda,-o>para especificar opciones SSH,-P>para especificar un puerto SSH personalizado, y-S>para especificar un programa a utilizar para la conexión cifrada.
  • [[user@]host1:]source_file_or_directory> : Esto representa el archivo o directorio fuente. Puede ser local o en una máquina remota especificada poruser@host1:>.
  • ...> : Esto indica que puede especificar varios archivos o directorios de origen.
  • [[user@]host2:]destination> : Este es el destino donde se copiarán los archivos o directorios. Puede ser local o en una máquina remota especificada poruser@host2:>.

Opciones en el comando scp en Linux

Opciones más utilizadas en el comando scp en Linux.

opciones Descripción
-PAG puerto: Especifica el puerto para conectarse en el host remoto.
-pag Conserva los tiempos de modificación, tiempos de acceso y modos del archivo original.
-q Desactiva el medidor de progreso.
-r Copie recursivamente directorios completos.
-s Nombre del programa que se utilizará para la conexión cifrada. El programa debe comprender las opciones de ssh(1).

Ejemplo práctico para copiar de forma segura un archivo en Linux

Tabla de contenidos



Cómo copiar de forma segura un archivo desde una máquina local a una máquina remota en Linux

Sintaxis:

scp [file_name] remoteuser@remotehost:/remote/directory>

Aquí

  • file_name = El nombre del archivo que debe copiarse.
  • usuario remoto = El nombre de usuario del host remoto.
  • remotehost = La dirección IP o nombre de host del host remoto.
  • /remote/directory = El directorio donde se debe copiar el archivo en la máquina remota.

Por ejemplo: Si queremos copiar un nombre de archivo test.txt del sistema local a un



  • usuario remoto = Jayesh
  • host remoto = 10.143.90.2
  • /remoto/directorio = /home/jayesh

Sintaxis:

scp test.txt [email protected]:/home/jayesh>

archivo copiado del sistema local al sistema remoto

Para verificar: use ` es `comando en la ubicación donde copiamos el archivo.

Archivo que hemos copiado

Cómo copiar de forma segura un archivo desde una máquina remota a nuestra máquina local

sintaxis:

scp user@remotehost:/home/user/file_name>

aquí

  • usuario = nombre de usuario del sistema remoto.
  • remotehost = dirección IP (o nombre de host) del sistema remoto.
  • /home/user/file_name = ruta del archivo que se debe copiar.
  • . = esto significa que estamos copiando ese archivo en la ubicación actual del sistema local.

Por ejemplo: si tenemos

  • usuario=jayesh
  • host remoto = 10.143.90.2
  • inicio/usuario/nombre_archivo = inicio/jayesh/test1.txt

sintaxis:

scp [email protected]:/home/jayesh/test1.txt>

archivo copiado del sistema remoto al sistema local usando scp

Para verificar: usar (en cmd de windows)

test1.txt copiado exitosamente

-P Opción en el comando scp

Se utiliza para copiar archivos de forma segura a una máquina remota en un puerto SSH no estándar y especificar el puerto para conectarse en el host remoto. Es útil cuando nuestro SSH El servidor está escuchando en un puerto no estándar.

Sintaxis:

scp -P port source_file user@hostname:destination_file>

Por ejemplo: Si queremos copiar un archivo test2.txt de la máquina local a una máquina remota con la dirección IP 10.143.90.2 en el puerto 2222, usuario = jayesh y ubicación = /home/jayesh/.
De forma predeterminada, el scp utiliza ssh a través del puerto 22 para transferir los archivos. Es posible que sea necesario cambiar el puerto si el puerto designado 22 no está abierto en el host remoto.

sintaxis:

scp -P 2222 test2.txt [email protected]:/home/jayesh/>

copiar archivos del sistema local al remoto usando la opción -P en scp

Para verificar: Usar `ls` comando en el sistema remoto en la ubicación donde hemos copiado el archivo.

test2.txt copiado exitosamente

-p Opción en el comando scp

Esta opción se utiliza cuando queremos los metadatos originales del archivo que se ha transferido. Básicamente, conserva el tiempo de modificación, el tiempo de acceso y los modos del archivo original.

Sintaxis:

scp -p source_file user@hostname:destination_file>

Por ejemplo: Si queremos copiar un archivo test3.txt de la máquina local a una máquina remota con dirección IP 10.143.90.2, usuario = jayesh y ubicación = /home/jayesh/

Sintaxis:

scp -p test3.txt [email protected]:/home/jayesh/>

copiar archivos del sistema local al remoto usando la opción -p en scp

-q Opción en el comando scp

Copia archivos de forma segura con Modo silencioso: deshabilitar el medidor de progreso. Esta opción oculta el progreso de la transferencia de archivos en el terminal.

Sintaxis:

scp -q source_file user@hostname:destination_file>

Por ejemplo: Si queremos copiar un archivo test4.txt de la máquina local a una máquina remota con dirección IP 10.143.90.2, usuario = jayesh y ubicación = /home/jayesh/

Sintaxis:

scp -q test4.txt [email protected]:/home/jayesh/>

Como podemos ver no se muestra ningún progreso.

Para verificar: Utilice el comando `ls` en el sistema remoto en la ubicación donde hemos copiado el archivo.

test4.txt copiado exitosamente

-r Opción en el comando scp

Esta opción se utiliza cuando queremos copiar un archivo completo. directorio y su contenido. Lo que básicamente significa copiar el directorio completo de forma recursiva.

Sintaxis:

scp -r Directory_name user@hostname:destination_file>

Por ejemplo: Si queremos copiar un nombre de contenido de directorio nuevo desde la máquina local a una máquina remota con la dirección IP 10.143.90.2, usuario = jayesh y ubicación = /home/jayesh/new1/

Sintaxis:

scp -r new [email protected]:/home/jayesh/new1/>

copiar el directorio completo y su archivo de forma recursiva usando `-r` en scp

Para verificar: Utilice el comando `ls` en el sistema remoto en la ubicación donde hemos copiado el archivo.

El nuevo directorio se copió correctamente.

Preguntas frecuentes sobre el comando scp en Linux

¿Qué es el comando scp -r en Linux?

Elscp -r>El comando en Linux se usa para copiar un directorio completo y su contenido. Esta opción permite la copia recursiva de archivos dentro del directorio especificado. He aquí un ejemplo:

scp -r username@source_machine:/path/to/source/directory username@destination_machine:/path/to/destination/>

Este comando copia recursivamente todos los archivos y subdirectorios del directorio de origen al destino especificado.

¿Qué es el comando scp en Linux?

Elscp>El comando en Linux se usa para copiar archivos o directorios entre hosts a través de una red y utiliza el protocolo SSH (Secure Shell) para la transferencia segura de archivos. A continuación se muestra un ejemplo de cómo copiar un archivo desde una máquina local a un servidor remoto:

scp /path/to/local/file username@remote_machine:/path/to/destination/>

Este comando transfiere de forma segura el archivo especificado a la máquina remota.

¿Qué es el comando scp inverso en Linux?

no hay marcha atrásscp>comando en Linux. Elscp>El comando está inherentemente diseñado para copiar archivos desde una fuente (local o remota) a un destino (local o remoto). No existe un comando específico para copiar archivos en dirección inversa. Si desea copiar un archivo desde una ubicación remota a su sistema local, aún puede usar el método normal.scp>dominio.

marco tkinter

Por ejemplo:

scp username@remote_machine:/path/to/source/file /path/to/local/destination/>

Este comando copia el archivo especificado desde la máquina remota al destino local.

¿Cómo uso el comando scp para copiar archivos entre dos máquinas Linux de forma segura?

Para copiar archivos de forma segura entre máquinas Linux, utilice la siguiente sintaxis:

scp [options] [destination]>

Por ejemplo:

scp username@source_machine:/path/to/source/file username@destination_machine:/path/to/destination/>

¿Cuáles son las opciones comunes utilizadas con scp para la transferencia segura de archivos?

Algunas opciones comunes utilizadas con scp incluyen:

  • -r>: copia recursivamente directorios completos.
  • -P port>: especifique el puerto al que conectarse en el host remoto.
  • -i identity_file>: especifique el archivo de clave privada para la autenticación.
  • -v>: habilite el modo detallado para obtener resultados detallados durante la transferencia.

¿Cómo puedo copiar archivos desde una máquina local a un servidor remoto usando scp?

Para copiar archivos desde una máquina local a un servidor remoto, utilice la siguiente sintaxis:

scp /path/to/local/file username@remote_machine:/path/to/destination/>

¿Cómo mejoro la seguridad de las transferencias de archivos scp?

Para mejorar la seguridad durante las transferencias de scp, considere:

  • Uso de autenticación de clave SSH para inicios de sesión sin contraseña.
  • Especificación de un puerto no predeterminado para mayor seguridad (-P port>opción).
  • Restringir el acceso estableciendo permisos de archivos adecuados en los directorios de origen y destino.

¿Cómo especificar el puerto SSH en Linux para scp?

Para especificar el puerto SSH en Linux parascp>, usas el-P>opción seguida del número de puerto. El-P>flag le permite definir un puerto personalizado para la conexión SSH, lo cual es útil cuando el servidor SSH en la máquina remota opera en un puerto no predeterminado.

Aquí hay un ejemplo:

scp -P your_file.txt user@remote_server:/path/to/destination/>

En este comando:

  • Reemplazar ` `> con el número de puerto real que desea utilizar para la conexión SSH.
  • `your_file.txt`> es el archivo que desea copiar.
  • `user`> es el nombre de usuario en el servidor remoto.
  • `remote_server`> es la dirección o nombre de host del servidor remoto.
  • `/path/to/destination/`> es el directorio de destino en el servidor remoto donde desea copiar el archivo.

Usando el ` -P`> opción seguida del número de puerto deseado, asegúrese de que ` scp`> se conecta al servidor remoto utilizando el puerto especificado para la operación de copia segura.

Conclusión

En este artículo discutimos elscp>comando en Linux, que es una forma segura y sencilla de copiar archivos entre computadoras a través de una red. Utiliza el protocolo Secure Shell (SSH) por motivos de seguridad y es conocido por su simplicidad. El artículo explica la sintaxis básica, las opciones comunes y proporciona ejemplos para copiar archivos, conservar metadatos y transferir directorios completos de forma segura. También respondió preguntas comunes, como cómo copiar directorios y archivos al revés, y compartió consejos para mejorar la seguridad durante las transferencias. En general,scp>es una herramienta útil para gestionar transferencias de archivos de forma segura y eficiente en sistemas Linux.