El protocolo de copia segura ( SCP ) es un método para transferir archivos de forma segura entre un host local y un host remoto , o entre dos hosts remotos. Se basa en el protocolo Secure Shell (SSH). [ 1 ] El término "SCP" se refiere comúnmente tanto al protocolo de copia segura como al programa en sí. [ 2 ]
Según los desarrolladores de OpenSSH en abril de 2019, SCP está obsoleto, es inflexible y no se puede reparar fácilmente; recomiendan el uso de protocolos más modernos como SFTP y rsync para la transferencia de archivos. [ 3 ] A partir de la versión 9.0 de OpenSSH, scpel cliente utiliza SFTP para las transferencias de archivos por defecto en lugar del protocolo SCP/RCP heredado. [ 4 ]
Protocolo de copia segura
El SCP es un protocolo de red , basado en el protocolo BSD RCP , [ 5 ] que admite transferencias de archivos entre hosts en una red. SCP utiliza Secure Shell (SSH) para la transferencia de datos y los mismos mecanismos de autenticación, garantizando así la autenticidad y confidencialidad de los datos en tránsito . Un cliente puede enviar (subir) archivos a un servidor, incluyendo opcionalmente sus atributos básicos (permisos, marcas de tiempo). Los clientes también pueden solicitar archivos o directorios a un servidor (descargar). SCP se ejecuta sobre el puerto TCP 22 por defecto. [ 6 ] Al igual que RCP, no existe un RFC que defina las especificaciones del protocolo.
Función
Normalmente, un cliente inicia una conexión SSH con el host remoto y solicita que se inicie un proceso SCP en el servidor remoto. El proceso SCP remoto puede operar en uno de dos modos:
- modo fuente, que lee archivos (normalmente desde el disco) y los envía de vuelta al cliente, o
- Modo de recepción, que acepta los archivos enviados por el cliente y los escribe (normalmente en el disco) en el host remoto.
Para la mayoría de los clientes SCP, el modo fuente se activa generalmente con el -findicador (from), mientras que el modo sumidero se activa con -t(to). [ 2 ] Estos indicadores se utilizan internamente y no están documentados fuera del código fuente de SCP.
Modo remoto a remoto
En el pasado, en la copia segura remota a remota, el cliente SCP abría una conexión SSH al host de origen y solicitaba que este, a su vez, abriera una conexión SCP al destino. (El modo remoto a remoto no admitía abrir dos conexiones SCP y usar el cliente de origen como intermediario). Por lo tanto, SCP no podía usarse para copiar remotamente del origen al destino cuando se operaba en modo de autenticación interactiva por contraseña o teclado, ya que esto revelaría las credenciales de autenticación del servidor de destino al origen. Sin embargo, era posible con métodos basados en claves o GSSAPI que no requieren la entrada del usuario. [ 2 ]
Más recientemente, el modo remoto a remoto admite el enrutamiento del tráfico a través del cliente que originó la transferencia, aunque sea un tercero en la misma. De esta forma, las credenciales de autorización deben residir únicamente en el cliente de origen, el tercero. [ 7 ]
Problemas al usar perfiles de shell comunicativos
SCP no espera texto que se comunique con el shell de inicio de sesión SSH. El texto transmitido debido al perfil SSH (por ejemplo, echo "Welcome"en el .bashrcarchivo) se interpreta como un mensaje de error, y una línea nula ( echo "") provoca que el cliente SCP se bloquee mientras espera a que se complete el mensaje de error. [ 2 ]
programa scp
El programa SCP [ 8 ] es una herramienta de software que implementa el protocolo SCP como un demonio de servicio o cliente. Es un programa para realizar copias seguras.
Quizás el programa SCP más utilizado sea el programa de línea de comandosscp OpenSSH , que se incluye en la mayoría de las implementaciones de SSH. Este scpprograma es el equivalente seguro del rcpcomando. scpDebe formar parte de todos los servidores SSH que deseen ofrecer servicio SCP, ya que también funciona como servidor SCP. Desde OpenSSH 9.0, el programa se ha actualizado para usar el protocolo SFTPscp , más reciente y seguro ; se ha añadido una opción para usar SCP con servidores antiguos que solo admiten SCP. [ 4 ]-O
Sintaxis
Normalmente, la sintaxis de un scpprograma [ 9 ] es como la sintaxis de cp(copiar) :
Copiar un archivo local a un host remoto:
scp LocalSourceFile usuario @ host remoto : directorio / TargetFile
Copia de archivos desde un host remoto y copia recursiva de carpetas (con -rparámetro) desde un host remoto:
scp usuario @ hostremoto : directorio / ArchivoOrigenArchivoDestinoLocal scp -r usuario @ host : directorio / CarpetaOrigenCarpetaDestinoLocal
Tenga en cuenta que si el host remoto utiliza un puerto distinto al predeterminado (22), puede especificarlo en el comando. Por ejemplo, al copiar un archivo desde el host:
scp -P 2222 usuario @ host : directorio / ArchivoOrigenArchivoDestino
Otros clientes
Como el Protocolo de Copia Segura ( SCP ) solo implementa transferencias de archivos, los clientes SCP con interfaz gráfica de usuario ( GUI ) son poco comunes, ya que su implementación requiere funcionalidad adicional ( al menos la visualización de directorios ). Por ejemplo, WinSCP utiliza por defecto el protocolo SFTP. [ 10 ] Incluso cuando operan en modo SCP, los clientes como WinSCP no suelen ser clientes SCP puros, ya que deben usar otros medios para implementar la funcionalidad adicional (como el lscomando ). [ 11 ] Esto, a su vez, genera problemas de dependencia de la plataforma.
Los clientes SFTP son herramientas más completas para gestionar archivos a través de SSH .
Seguridad
En 2019 se anunció la vulnerabilidad CVE - 2019-6111 [ 12 ] relacionada con la herramienta y el protocolo OpenSSH SCP que permite a los usuarios sobrescribir archivos arbitrarios en el directorio de destino del cliente SCP.
Véase también
Referencias
- ↑ "Comando scp de Linux y Unix" . Computer Hope . Consultado el 4 de agosto de 2015 .
- 1 2 3 4 Pechanec, Jan. " Cómo funciona el protocolo SCP" . Blog de Jan Pechanec . Oracle. Archivado del original el 15 de febrero de 2017. Recuperado el 4 de agosto de 2015 .
- ↑ "OpenSSH 8.0" . Notas de la versión de OpenSSH . 17 de abril de 2019.
- 1 2 "OpenSSH 9.0" . Notas de la versión de OpenSSH . 8 de abril de 2022.
- ↑ "scp(1) - Páginas del manual de OpenBSD (sección de historia)" . Consultado el 25 de junio de 2012 .
- ↑ "SCP - Protocolo de copia segura - ¿Qué es? Definición completa y comandos de ejemplo!" . Descargas para PC y redes - PCWDLD.com . 29/06/2019 . Consultado el 22/05/2020 .
- ↑ Carroll, Brandon (16 de agosto de 2017). "Cómo usar Secure Copy para la transferencia de archivos" . TechRepublic . Recuperado el 22 de mayo de 2020 .
- ↑ "OpenSSH portátil" . GitHub . 13 de mayo de 2022.
- ↑ "scp(1) - Páginas del manual de OpenBSD" https://man.openbsd.org/scp
- ↑ "Protocolos de transferencia de archivos compatibles :: WinSCP" . winscp.net . Consultado el 22 de mayo de 2020 .
- ↑ "La página SCP/Shell (Diálogo de configuración avanzada del sitio) :: WinSCP" . winscp.net . Consultado el 22 de mayo de 2020 .
- ↑ "NVD - Cve-2019-6111" .
- Comandos de Windows
- Software criptográfico
- protocolos criptográficos
- protocolos de transferencia de archivos de red