scp, transmitiendo información de forma segura
Hace unos días explicábamos como instalar en nuestro equipo OpenSSH. Hoy vamos a ver cómo utilizar scp.
¿Qué es scp?
Wikipedia
Secure Copy o scp es un medio de transferencia segura de archivos entre un host local y otro remoto, o entre dos hosts remotos.
A diferencia de rcp, scp permite encriptar los datos durante su transferencia, evitando así que cualquier usuario pueda extraer información de nuestro paquete de datos.
¿Cómo empezar a usarlo?
Un vistazo rápido a la página de ayuda sobre scp nos muestra su sintáxis:
scp [-1246BCpqrv] [-c cipher] [-F ssh_config] [-i identity_file] [-l limit] [-o ssh_option] [-P port] [-S program] [
[user@]host1:]file1 [...] [ [user@]host2:]file2
Para comprender la funcionalidad de cada opción, puedes visitar la entrada del manual para scp.
Expongamos unos ejemplos que nos permitan familiarizarnos:
- Copiar un archivo de una máquina remota a una local
scp username@remotehost:file.txt /local/directory
- Copiar un archivo de una máquina local a una remota
scp file.txt username@remotehost:/remote/directory
- Copiar un archivo de una máquina remota a otra remota
scp username@remotehost1:/remote/directory/file.txt \
username@remotehost2:/remote/directory
- Copiar varios archivos de tu máquina local al directorio home de tu máquina remota
scp file1.txt file2.txt username@remotehost:~
- Copiar múltiples archivos de una máquina remota a tu directorio actual en la máquina local
scp username@remotehost:/remote/directory/\{a,b,c\} .scp username@remotehost:/remote/directory/\{file1.txt,file2.txt\} .
También puedes copiar directorios completos utilizando la opción -r para ello:
- Copiar el directorio ‘etc’ de una máquina local a una remota
scp -r /etc username@remotehost:/remote/directory
Los casos que hemos explicado para los ficheros también son aplicables en directorios.
Mejorando el rendimiento de scp
Si has echado un vistazo a las opciones que incluye scp habrás advertido -c y -C. En caso de no ser así, damos una breve explicación:
- -c cypher_spec
Nos permite elegir la técnica de cifrado a usar para encriptar la transferencia de datos. Si estamos usando la versión 1 del protocolo, podemos usar: ‘3des‘, ‘blowfish‘ y ‘des‘. 3Des (triple-des) es una triple encriptación-desencriptación que usa 3 llaves diferentes. Blowfish es un codificador de bloques simétricos, muy seguro y bastante más rápido que 3des. Des únicamente está soportado en aquellos clientes ssh que implemente la versión 1 del protocolo y no disponen de soporte para el cifrado 3des.-
Para la versión 2 del protocolo, tenemos: ‘3des-cbc‘, ‘aes128-cbc‘, ‘aes192-cbc‘, ‘aes256-cbc‘, ‘aes128-ctr‘, ‘aes192-ctr‘, ‘aes256-ctr‘, ‘arcfour128‘, ‘arcfour256‘, ‘arcfour‘, ‘blowfish-cbc‘ y ‘cast128-cbc‘.
- -C
Habilita la compresión de los datos.
Por defecto scp usa 3des para encriptar los datos, si quieres puedes aumentar la velocidad de transferencia utilizando blowfish en su lugar. Esto puedes hacerlo especificando la opción -c blowfish
scp -c blowfish local_file username@remote_host:remote_dir
También puedes comprimir los datos que vayas a enviar, en caso de disponer de una conexión lenta.
scp -c blowfish -C local_file username@remote_host:remote_dir
-
1
Pingback on sep 2nd, 2009 a las 12:41 am
[...] – 24/Agosto/2009 19:47:32 24Agosto 0HITS Articulo Indexado en la Blogosfera de Sysmaya Hace unos días explicábamos como instalar en nuestro equipo OpenSSH. Hoy vamos a ver [...]
agosto 26, 2009 at 2:12 am
Suena interesante, en realidad me gusta mucho el tema de la seguridad y mucho mas ahora que estoy trabajando con Linux y uno que otro Solaris, voy a probarlo, gracias!!
agosto 26, 2009 at 2:18 am
@jhonnatan Bienvenido. Si quieres adentrarte un poco más, te recomiendo que leas las dos entradas anteriores, son un poco extensas, pero te aseguro que aprenderás.
Un saludo.