Información blog

Linux, tutoriales, noticias, sistemas, redes y seguridad informática, entre otras cosas.

jueves, 18 de junio de 2015

Cómo copiar un archivo por red mediante SCP

SCP (Secure Copy) es un protocolo de transferencia de archivos que se realiza a través del protocolo SSH. Esto ofrece como ventaja el hecho de que la transferencia de archivos es cifrada, evitando que la comunicación se vea comprometida, aunque para poder hacer la transferencia es necesario conocer las credenciales de acceso del equipo remoto, pues en caso contrario la transferencia no podrá realizarse. Aún así, este es sin duda el método favorito de la mayoría de las personas que trabajan o han trabajado alguna vez con un entorno basado en Linux. Solamente requiere que ambos equipos tengan SSH instalado y que se tenga acceso a dicho puerto (es decir, que el cortafuegos no nos bloquee o que el puerto no esté cerrado), ya que la herramienta necesaria para realizar la transferencia está instalada por defecto en el sistema.
La transferencia es bidireccional, es decir que puede transferirse un archivo de un equipo remoto a nuestro propio PC sin la necesidad de tener que ejecutar el comando desde el otro equipo, lo cual nos permite actuar con gran libertad, y tiene la gran ventaja de que el comando de transferencia es muy sencillo y rápido de aplicar.

Supongamos que poseemos SSH instalado en ambos equipos y que deseamos realizar una transferencia. Para ello hay que tener muy clara la estructura que poseen estas transferencias:

scp -r ${archivo_a_copiar} ${destino de la copia}

El comando es sencillo, pero lo mejor para entender cómo darle un uso real es mediante la exposición de diversos ejemplos. Cómo veréis estos ejemplos tienen una estructura ligeramente parecida a la estructura de una conexión ssh. En este caso voy a exponer 4 ejemplos, 3 de ellos con una finalidad distinta y otro de ellos de carácter global.

El primer ejemplo es el más común de todos: Se trata de la transferencia de un archivo desde nuestro propio equipo a otro. En este caso en concreto voy a transferir desde mi equipo un fichero denominado fichero.txt a otro equipo con el usuario ivan. Dicho equipo posee la ip 192.168.1.5 y quiero transferir el archivo a su directorio personal, /home/ivan:

  1. scp -r /usr/src/fichero.txt ivan@192.168.1.5:/home/ivan

Podéis apreciar que en el ejemplo, la conexión al equipo remoto sigue la misma estructura que una conexión ssh, es decir que a la hora de referirse a un equipo remoto la estructura siempre sería:

usuario@ip:ubicación

Visto esto sigamos al siguiente ejemplo; En este caso vamos a realizar el mismo procedimiento pero a la inversa, lo cual no requiere nada más que invertir el orden:

  1. scp -r ivan@192.168.1.5:/home/ivan/fichero.txt /usr/src/

Por último, hay otro uso que se le puede dar a SCP. Este uso es algo menos habitual, pero no por ello menos útil. Se trata de la transferencia de archivos entre dos máquinas remotas. Eso significa que siempre y cuando las tres máquinas (las dos remotas y la vuestra) cumplan los requisitos para una comunicación por SSH, no será necesario desplazarse a ninguna de las dos remotas para realizar la transferencia deseada. El comando en cuestión sería:

  1. scp -r ivan@192.168.1.5:/home/ivan/fichero.txt invitado@192.168.1.6:/home/invitado/

Habéis visto en los ejemplos que siempre he incluido las rutas en las que se almacenarán las copias que vamos a realizar, pero no es un requisito; Es posible dejar la ruta de destino en blanco, en cuyo caso el fichero SIEMPRE irá a parar a la carpeta personal del usuario, con lo que basándonos en el ejemplo anterior, un comando igualmente válido sería:

  1. scp -r ivan@192.168.1.5:/home/ivan/fichero.txt invitado@192.168.1.6

Espero que os resulte útil.

Saludos.

No hay comentarios :

Publicar un comentario