# Secure Copy

El Secure Copy Protocol (SCP), también conocido como Secure Copy, es un protocolo de sistemas informáticos que se utiliza para la transferencia de archivos de forma segura. En términos generales, este protocolo permite la transferencia de datos entre un host local y un host remoto o entre dos hosts remotos, a través del protocolo Secure Shell (SSH). Cómo característica principal de su funcionamiento, el protocolo SCP implementa un proceso de autenticación, al igual que un cifrado de transmisión para garantizar la autenticidad y seguridad.
El término SCP puede referir a dos conceptos relacionados, el protocolo SCP o el programa SCP.

## Protocolo SCP

El protocolo SCP es básicamente idéntico al protocolo RCP de BSD. A diferencia de RCP, los datos son cifrados durante su transferencia, para evitar que potenciales packet sniffers extraigan información útil de los paquetes de datos. Sin embargo, el protocolo mismo no provee autenticación y seguridad; sino que espera que el protocolo subyacente, SSH, lo asegure.
El modo SCP, es un protocolo que deja al servidor y al cliente tener múltiples conversaciones sobre una TCP normal. Este protocolo está diseñado para ser simple de implementar.
El servicio principal de este protocolo es el control del diálogo entre el servidor y el cliente, administrando sus conversaciones y agilizadas en un alto porcentaje, este protocolo le permite a cualquiera de los dos establecer una sesión virtual sobre la normal.
La descripción de un formato de comunicación en las cabeceras enviadas por la red es la siguiente:
| 00 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 |
| Identificador de Sesión | Identificador de Sesión | Identificador de Sesión | Identificador de Sesión | Identificador de Sesión | Identificador de Sesión | Identificador de Sesión | Identificador de Sesión | Identificador de Sesión | Identificador de Sesión | Identificador de Sesión | Identificador de Sesión | Identificador de Sesión | Identificador de Sesión | Identificador de Sesión | Identificador de Sesión | Identificador de Sesión | Identificador de Sesión | Identificador de Sesión | Identificador de Sesión | Identificador de Sesión | Identificador de Sesión | Identificador de Sesión | Identificador de Sesión | P | R | F | S | 0 | 0 | 0 | 0 |
| Longitud de Sesión ||||||||||||||||||||||||||||||||
| Datos ||||||||||||||||||||||||||||||||
* Donde P es PUSH.
* Donde R es RST.
* Donde F es FIN.
* Donde S es SYN.
SCP puede solicitar de manera iterativa cualquier contraseña para establecer una conexión con un host remoto.
El protocolo SCP implementa la transferencia de archivos únicamente. Para ello se conecta al host usando SSH y allí ejecuta un servidor SCP. Generalmente el programa SCP del servidor es el mismo que el del cliente.
Para realizar la subida, el cliente le proporciona al servidor los archivos que desea subir y opcionalmente puede incluir otros atributos (permisos, fechas, etc.) Esto es una ventaja sobre el protocolo FTP.
Para descargar, el cliente envía una solicitud por los archivos que desea descargar. El proceso de descarga está dirigido por el servidor y es el que se encarga de la seguridad del mismo. Frecuentemente, para los usos aquí detallados se utiliza el protocolo SFTP, también basado en SSH.

## Programa SCP

El programa SCP es un cliente que implementa el protocolo SCP, es decir, es un programa que realiza copia segura.
El cliente SCP más ampliamente usado es el programa scp del Intérprete de comandos, que es incorporado en la mayoría de las implementaciones de SSH. El programa scp es el análogo seguro del comando rcp. El programa scp debe formar parte de todos los servidores SSH que quieran proveer el servicio SCP, así como scp funciona como servidor SCP también.
Algunas implementaciones de SSH proveen del programa scp2, el cual usa el protocolo SFTP en lugar de SCP, pero provee la misma interfaz del Intérprete de comandos que scp. Este scp es normalmente un enlace simbólico a scp2.
Normalmente, la sintaxis del programa scp es similar a la sintaxis de la orden cp:
Como el protocolo SCP sólo implementa transferencia de ficheros, los clientes SCP con GUI son raros, estas implementaciones requieren de funcionalidades añadidas, como el listado de directorios. Los clientes SCP GUI, como WinSCP, no son normalmente clientes SCP puros, estos suelen contener muchas otras funcionalidades, como el comando ls. Esto provoca problemas de dependencia con las plataformas, esto no ocurre al utilizar el cliente tradicional del Intérprete de comandos.