Uso de SCP para copiar y transferir archivos y carpetas de forma segura

U

Introducción

SCP significa Protocolo de copia segura. Es una herramienta que se puede utilizar para transferir archivos de un host local a un host remoto, de un host remoto a un host local o entre dos hosts remotos. En este artículo, examinaremos cómo usar SCP para copiar entre hosts locales y remotos.

SCP se ejecuta casi exclusivamente desde la línea de comandos utilizando el scp mando. Utiliza el ssh (Secure Shell) para transferir datos hacia y desde hosts remotos. Como tal, tiene un conjunto de opciones que especifican los parámetros de autenticación, hosts y puertos como SSH.

Por defecto, el protocolo SCP opera en el puerto 22 a menos que sea reemplazado por una opción de línea de comandos. Todas scp Los comandos siguen la forma:

$ scp [OPTIONS] [SOURCE] [DESTINATION]

Veamos cómo SCP nos permite transferir un archivo de nuestra computadora local a una remota.

Transferencia de un archivo local a un destino remoto

Cargar un archivo desde nuestra computadora local a una ubicación remota es un escenario común para los profesionales de TI. Con scp, podemos lograr esto con un comando como:

$ scp path/to/local/file.ext [email protected]:path/to/remote/file.ext

Este comando copiará el archivo local file.ext a la ruta especificada (después de los dos puntos) en el remote-host.

  • los user suministrado en el comando es el nombre de usuario. El nombre de usuario debe pertenecer a un usuario de la máquina remota.
  • los remote-host suministrado es el nombre de dominio o la dirección IP de la máquina remota a la que estamos intentando conectarnos.
  • Luego especificamos dónde queremos copiar el archivo en la máquina remota después de los dos puntos (:).

Después de ejecutar este comando, aparecerá un mensaje para la contraseña correspondiente a la cuenta de usuario del host remoto:

$ [email protected]'s password:

Una vez ingresada la contraseña, se copiará el archivo.

Esta cuenta de usuario debe tener acceso a la ruta remota especificada en el comando. Si no puede utilizar sus credenciales para iniciar sesión de forma remota con ssh, esas credenciales no funcionarán al usar scp.

Ahora que sabemos cómo transferir un archivo remoto a nuestra máquina local, analicemos el escenario inverso: transferir un archivo desde un host remoto al host local.

Transferencia de un archivo remoto a un destino local

De manera muy similar, podemos copiar un archivo desde una computadora remota a nuestra máquina local:

$ scp [email protected]:path/to/remote/file.ext path/to/local/file.ext

Esto funciona esencialmente de la misma manera, excepto que el usuario remoto, el host y la ruta ahora se especifican antes que la ruta local.

Todavía se mostrará un mensaje para la contraseña que pertenece a la cuenta de usuario del host remoto. Pero, cuando esté completo, debería tener un nuevo archivo en la carpeta que especificó.

Echemos un vistazo a la transferencia de un archivo entre dos hosts remotos.

Transferencia de un archivo remoto a un destino remoto

Finalmente, el siguiente formato de comando se usa para transferir un archivo entre dos hosts remotos:

$ scp [email protected]:path/to/remote/file.ext [email protected]:path/to/remote/file.ext

Tenga en cuenta que en este caso, se deben especificar dos usuarios remotos. Cada uno debe tener acceso a su respectivo servidor remoto. Aparecerá una solicitud de contraseña para aceptar las credenciales de inicio de sesión de cada usuario.

De todas estas variaciones de la copia de archivos, vemos que el scp El comando es flexible en lo que puede ser la ruta de origen o destino. Esta versatilidad lo hace muy útil para scripts.

Podemos transferir archivos entre nuestras máquinas locales y remotas para probar y actualizar las configuraciones del servidor o de la aplicación. Podemos transferir archivos entre nuestro host remoto principal y un servidor de respaldo con scp. La simplicidad y flexibilidad de SCP lo ha hecho popular entre los administradores de sistemas.

El comando SCP también tiene configuraciones para una mayor flexibilidad en qué y cómo copiamos. Veamos cómo podemos usar las opciones de la línea de comandos para modificar su comportamiento.

Opciones comunes de la línea de comandos de SCP

los scp El comando tiene algunas opciones útiles (también conocidas como banderas) que pueden alterar aspectos de cómo se conecta a un host remoto.

Cambio de puerto

Como se mencionó anteriormente, SCP opera en el puerto 22 por defecto. Sin embargo, esto se puede anular proporcionando el -P bandera, seguida del número de puerto.

Así es como copiamos un archivo a un destino remoto que se conecta al puerto 44 en vez de 22:

$ scp -P 44 path/to/local/file.ext [email protected]:path/to/remote/file.ext

Hora de modificación / acceso

La diferencia entre -P y -p vale la pena señalar la bandera. los -p La bandera conserva los tiempos de modificación del archivo, los tiempos de acceso y los modos durante la transferencia. Esto puede ser útil si se desea mantener las propiedades del archivo sin cambios:

$ scp -p path/to/local/file.ext [email protected]:path/to/remote/file.ext

Copiar directorios

los -r flag se puede usar para copiar de forma recursiva una carpeta y su contenido en lugar de un solo archivo:

$ scp -r path/to/local/folder [email protected]:path/to/remote/folder

Esto es más limpio que copiar archivos de la carpeta con el * o ? comodines.

Modo suprimido

los -q flag suprime el medidor de progreso y los mensajes que no son de error para que su terminal se mantenga limpio:

$ scp path/to/local/file.ext [email protected]:path/to/remote/file.ext
file.ext                                100%    0     0.0KB/s   00:00

$ scp -q path/to/local/file.ext [email protected]:path/to/remote/file.ext
$

Observe que el segundo comando que ejecutamos en este ejemplo, el porcentaje de transferencia no se muestra debido a la -q bandera.

Archivo de par de claves de autenticación

los -i La bandera se puede utilizar para autenticar la conexión utilizando un par de claves criptográficas almacenado en un archivo en lugar de un nombre de usuario y contraseña. Esta es una práctica común para la autenticación en servidores de nube remotos, como los de AWS o Digital Ocean.

Puede especificar un archivo de par de claves como este:

$ scp -i path/to/local/keypair.pem path/to/local/file.ext [email protected]:path/to/remote/file.ext

Uso de múltiples opciones de SCP

Las banderas también se pueden usar entre sí. Aquí hay un ejemplo que implementa múltiples banderas para copiar una carpeta desde un host remoto a nuestra máquina local usando un archivo de par de claves para la autenticación en el puerto 44, conservando las propiedades del archivo y suprimiendo la salida:

$ scp -p -q -P 44 -i path/to/local/keypair.pem -r path/to/local/folder [email protected]:path/to/remote/folder

¡Con esta base, estás equipado para usar SCP en una variedad de situaciones!

Conclusión

En este artículo, discutimos SCP, un protocolo que se puede usar para transferir archivos de manera conveniente entre hosts. Cubrimos la transferencia de archivos desde el host local a un host remoto, desde un host remoto al host local y entre dos hosts remotos.

También tocamos algunas opciones importantes de la línea de comandos que pueden usarse en escenarios específicos.

Sobre el Autor

Este artículo fue escrito por Ramiro de la Vega, un desarrollador de software y consultor apasionado por ayudar a otros a mejorar sus vidas a través del código. Jacob es el autor de la Guía básica de codificación para desarrolladores, un libro introductorio que cubre conceptos y herramientas de codificación esenciales. Contiene capítulos sobre arquitectura informática básica, Internet, línea de comandos, HTML, CSS, JavaScript, Python, Java, bases de datos / SQL, Git y más.

.

About the author

Ramiro de la Vega

Bienvenido a Pharos.sh

Soy Ramiro de la Vega, Estadounidense con raíces Españolas. Empecé a programar hace casi 20 años cuando era muy jovencito.

Espero que en mi web encuentres la inspiración y ayuda que necesitas para adentrarte en el fantástico mundo de la programación y conseguir tus objetivos por difíciles que sean.

Add comment

Sobre mi

Últimos Post

Etiquetas

Esta web utiliza cookies propias para su correcto funcionamiento. Al hacer clic en el botón Aceptar, aceptas el uso de estas tecnologías y el procesamiento de tus datos para estos propósitos. Más información
Privacidad