Cómo transferir de forma segura archivos y directorios usando SCP
SCP
, también conocido como secure copy
, es una utilidad de línea de comandos para transferir archivos y directorios desde un sistema local a uno remoto y viceversa. También nos permite transferir archivos y directorios entre dos sistemas remotos. Los archivos y las contraseñas se encriptan durante la transferencia para que sea una forma más segura de transferencia.
Comando SCP
Sintaxis
scp [OPTION] [user@]SRC_HOST:]file1 [user@]DEST_HOST:]file2
Banderas:
OPTION
: Representa las opciones descp
como el cifrado, la configuración ssh, el puerto ssh, el límite, la copia recursiva… etc.[usuario@]SRC_HOST:]file1
: archivo de origen o directorio a copiar[usuario@]DEST_HOST:]file2
: ruta al directorio donde el archivo o directorio fuente necesita ser copiado
scp
proporciona varias opciones para controlar la transferencia. Algunas de las opciones más utilizadas son:
-P |
Especificar el puerto ssh del host remoto |
-p |
Preservar la modificación de los archivos y los tiempos de acceso. |
-q |
Suprimir el medidor de progreso y los mensajes de error |
-C |
Comprimir los datos mientras se transfieren |
-r |
Copiar archivos de forma recursiva. |
Cosas que deben ser notadas al usar el comando scp
:
- Este comando usa la clave o contraseña
ssh
para autentificar sistemas remotos. - Reconoce los sistemas remotos con el símbolo
:
. - Debemos echar un vistazo a los permisos de lectura del archivo o directorio de origen y los permisos de escritura del archivo o directorio de destino.
scp
sobrescribe los archivos sin avisar. Así que debemos ser cuidadosos durante la transferencia de archivos que comparten el mismo nombre y ubicación en ambos sistemas.
Transferir archivos y directorios usando scp
Copiar un archivo del sistema local al sistema remoto
scp main.py remote_username@11.11.0.200:/Documents/directory
Este comando nos pedirá una contraseña de usuario y la transferencia comenzará una vez que introduzcamos la contraseña correcta.
Resultado:
remote_username@11.11.0.200's password:
main.py 100% 0 0.0KB/s 00:00
Copia el archivo main.py
en nuestro sistema local al servidor remoto con el nombre de usuario nombre_de_usuario
y la dirección IP 11.11.0.200
. /Documents/directory
representa el directorio de destino en el servidor remoto donde el archivo debe ser copiado. Si no se especifica el directorio remoto, el archivo se copiará al directorio principal de la máquina remota.
Si el SSH
del remoto está escuchando otro puerto que no sea el puerto 22
por defecto, podemos especificar el puerto usando la opción -P
.
scp -P 8080 main.py remote_username@11.11.0.200:/Documents/directory
Copiar un directorio del sistema local al remoto
Debemos usar el argumento -r
con el comando scp
para transferir directorios que representa una transferencia recursiva de todos los archivos dentro del directorio.
scp -r /Documents/myapp remote_username@11.11.0.200:/Documents/remote_app
Copia el directorio myapp
dentro del directorio Documents
de la máquina local al directorio remote_app
dentro de Documents
de la máquina remota.
Copia un archivo del sistema remoto al sistema local
Para copiar un archivo del sistema remoto al sistema local, utilizamos una ubicación remota como fuente y la ubicación local como destino.
scp remote_username@11.11.0.200:/remote/main.py /Documents/local
Se copia el archivo main.py
del sistema remoto a nuestro sistema local con el directorio de destino /Documents/local
.
Copia el archivo de una ubicación remota a otra ubicación remota
scp userA@11.11.0.200:/host1/main.py userB@11.11.0.205:/host2
Copia el archivo /host1/main.py
del host remoto con la dirección IP 11.11.0.200
al directorio host2
del host con la dirección IP 11.11.0.205
.
Para enrutar el tráfico a través de la máquina en la que se emite el comando, añadimos la opción -3
al comando scp
.
scp -3 userA@11.11.0.200:/host1/main.py userB@11.11.0.205:/host2
Suraj Joshi is a backend software engineer at Matrice.ai.
LinkedInArtículo relacionado - Linux Files and Directories
- Cómo borrar archivos y directorios en la terminal de Linux
- Cómo copiar archivos y directorios usando la terminal Linux
- Cómo extraer archivos Bzip2 usando la terminal
- Cómo hacer nuevos directorios en Linux
- Cómo mover archivos y directorios en Linux usando el comando Mv
- Cómo renombrar archivos y directorios usando la terminal de Linux