El protocolo de copia segura ( SCP ) es un medio de transferir de forma segura archivos de computadora entre un host local y un host remoto o entre dos hosts remotos. Se basa en el protocolo Secure Shell (SSH). [1] "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á desactualizado, es inflexible y no se soluciona fácilmente; recomiendan el uso de protocolos más modernos como sftp y rsync para la transferencia de archivos. [3]
Desarrollador (es) | El proyecto OpenSSH |
---|---|
Repositorio | github |
Escrito en | C |
Sistema operativo | Multiplataforma |
Tipo | Mando |
Sitio web | www |
Protocolo de copia segura
El SCP es un protocolo de red , basado en el protocolo BSD RCP , [4] que admite transferencias de archivos entre hosts en una red. SCP utiliza Secure Shell (SSH) para la transferencia de datos y utiliza los mismos mecanismos de autenticación, lo que garantiza la autenticidad y confidencialidad de los datos en tránsito . Un cliente puede enviar (cargar) archivos a un servidor, incluyendo opcionalmente sus atributos básicos (permisos, marcas de tiempo). Los clientes también pueden solicitar archivos o directorios de un servidor (descarga). SCP se ejecuta en el puerto TCP 22 de forma predeterminada. [5] Al igual que RCP, no existe un RFC que defina los detalles del protocolo.
Función
Normalmente, un cliente inicia una conexión SSH al host remoto y solicita que se inicie un proceso SCP en el servidor remoto. El proceso de SCP remoto puede operar en uno de dos modos:
- modo de origen, que lee archivos (generalmente desde el disco) y los envía de vuelta al cliente, o
- modo sumidero, que acepta los archivos enviados por el cliente y los escribe (generalmente en el disco) en el host remoto.
Para la mayoría de los clientes SCP, el modo fuente generalmente se activa con la -fbandera (desde), mientras que el modo receptor se activa con -t(hasta). [2] Estos indicadores se utilizan internamente y no están documentados fuera del código fuente de SCP.
Remoto a modo remoto
En el pasado, en la copia segura de remoto a remoto, el cliente SCP abre una conexión SSH al host de origen y solicita que, a su vez, abra una conexión SCP al destino. (El modo de remoto a remoto no admitía la apertura de dos conexiones SCP y el uso del cliente de origen como intermediario). Es importante tener en cuenta que SCP no se puede utilizar para copiar de forma remota desde el origen al destino cuando se opera en modo de autenticación con contraseña o teclado interactivo, ya que esto revelaría las credenciales de autenticación del servidor de destino al origen. Sin embargo, es posible con métodos basados en claves o GSSAPI que no requieren la intervención del usuario. [2]
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 para la transferencia. De esta manera, las credenciales de autorización deben residir solo en el cliente de origen, el tercero. [6]
Problemas con el uso de perfiles de shell comunicativos
SCP no espera que el texto se comunique con el shell de inicio de sesión de ssh. El texto transmitido debido al perfil ssh (por ejemplo, echo "Bienvenido" en el archivo .bashrc) se interpreta como un mensaje de error, y una línea nula (echo "") hace que scp se bloquee esperando que se complete el mensaje de error. [2]
Copia segura (programa de copia de archivos remota)
El programa SCP [7] 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 es el programa de línea de comandos OpenSSH scp, que se proporciona en la mayoría de las implementaciones SSH. El scpprograma es el análogo seguro del rcpcomando. El scpprograma debe ser parte de todos los servidores SSH que quieran brindar el servicio SCP, así como también scpfunciona como servidor SCP.
Algunas implementaciones de SSH proporcionan el scp2programa, que utiliza el protocolo SFTP en lugar de SCP, pero proporciona la misma interfaz de línea de comandos que scp. scpes típicamente un enlace simbólico a scp2.
Sintaxis
Normalmente, una sintaxis del scpprograma [8] es como la sintaxis de cp(copiar) :
Copiando archivo local a un host remoto:
scp LocalSourceFile user@remotehost:directory/TargetFile
Copiando archivo desde el host remoto y copiando la carpeta desde el host remoto (con el interruptor -r):
scp user@remotehost:directory/SourceFile LocalTargetFilescp -r user@host:directory/SourceFolder LocalTargetFolder
Tenga en cuenta que si el host remoto utiliza un puerto diferente al predeterminado 22, se puede especificar en el comando. Por ejemplo, copiando un archivo desde el host:
scp -P 2222 user@host:directory/SourceFile TargetFile
Otros clientes
Dado que el Protocolo de copia segura solo implementa transferencias de archivos, los clientes GUI SCP son raros, ya que su implementación requiere una funcionalidad adicional ( al menos una lista de directorios ). Por ejemplo, WinSCP utiliza de forma predeterminada el protocolo SFTP. [9] Incluso cuando operan en modo SCP, los clientes como WinSCP normalmente no son clientes SCP puros, ya que deben utilizar otros medios para implementar la funcionalidad adicional (como el lscomando ). [10] Esto a su vez trae problemas de dependencia de la plataforma.
Las herramientas más completas para administrar archivos a través de SSH son los clientes SFTP .
Seguridad
En 2019 , se anunció la vulnerabilidad CVE - 2019-6111 [11] 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.
Ver también
- Protocolo de transferencia de archivos SSH (SFTP)
- Copia remota (rcp)
- Comparación de protocolos de transferencia de archivos
- Archivos transferidos a través del protocolo shell (FISH)
- FTP sobre SSH
- FTPS
- rsync
- Cubierta segura
- WinSCP
Referencias
- ^ "Comando scp de Linux y Unix" . Esperanza informática . Consultado el 4 de agosto de 2015 .
- ^ a b c d Pechanec, ene . "Cómo funciona el protocolo SCP" . El weblog de Jan Pechanec . Oráculo. Archivado desde el original el 15 de febrero de 2017 . Consultado el 4 de agosto de 2015 .
- ^ "OpenSSH 8.0" . Notas de la versión de OpenSSH . 17 de abril de 2019.
- ^ "scp (1) - Páginas del manual de OpenBSD (sección de historial)" . Consultado el 25 de junio de 2012 .
- ^ Reservado, Copyright PCWDLD com © 2020 Todos los derechos; Nosotros, Contacto; Política, Privacidad; Anunciar; Uso, Términos de; Descargo de responsabilidad; amigos, Info &; PCWDLD.com, Acerca de; Boletines, suscríbase a nuestro (2019-06-29). "SCP - Protocolo de copia segura - ¿Qué es y definición completa y cmds de ejemplo?" . Descargas para PC y redes - PCWDLD.com . Consultado el 22 de mayo de 2020 .
- ^ Br; 16 de agosto, en Carroll en Networking on; 2017; Pst, 9:34 am. "Cómo utilizar Secure Copy para la transferencia de archivos" . TechRepublic . Consultado el 22 de mayo de 2020 .CS1 maint: nombres numéricos: lista de autores ( enlace )
- ^ https://github.com/openssh/openssh-portable/blob/master/scp.c
- ^ "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 (cuadro de diálogo Configuración avanzada del sitio) :: WinSCP" . winscp.net . Consultado el 22 de mayo de 2020 .
- ^ https://nvd.nist.gov/vuln/detail/CVE-2019-6111