Protocolo de copia segura

format_list_bulleted Contenido keyboard_arrow_down
ImprimirCitar
El

Protocolo de copia segura (SCP) es un medio para transferir archivos informáticos de forma segura entre un host local y un host remoto o entre dos hosts remotos. Está basado en el protocolo Secure Shell (SSH). "SCP" comúnmente se refiere tanto al Protocolo de copia segura como al programa en sí.

Según los desarrolladores de OpenSSH en abril de 2019, SCP está desactualizado, es inflexible y no se repara fácilmente; recomiendan el uso de protocolos más modernos como SFTP y rsync para la transferencia de archivos. A partir de la versión 9.0 de OpenSSH, el cliente scp utiliza SFTP para transferencias de archivos de forma predeterminada en lugar del protocolo SCP/RCP heredado.

Protocolo de copia segura

El SCP es un protocolo de red, basado en el protocolo BSD RCP, 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, garantizando así 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 desde un servidor (descargar). SCP se ejecuta a través del puerto TCP 22 de forma predeterminada. 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 SCP remoto puede operar en uno de dos modos:

  • modo fuente, que lee los archivos (normalmente del disco) y los envía de vuelta al cliente, o
  • modo de fregadero, que acepta los archivos enviados por el cliente y los escribe (normalmente al disco) en el host remoto.

Para la mayoría de los clientes SCP, el modo fuente generalmente se activa con el indicador -f (desde), mientras que el modo receptor se activa con -t (to). 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 de remoto a remoto, el cliente SCP abre una conexión SSH al host de origen y solicita que éste, a su vez, abra una conexión SCP al destino. (El modo 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 entrada del usuario.

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 transferencia. De esta manera, las credenciales de autorización deben residir únicamente en el cliente de origen, el tercero.

Problemas al utilizar perfiles de shell habladores

SCP no espera que el texto se comunique con el shell de inicio de sesión SSH. El texto transmitido debido al perfil SSH (por ejemplo, echo "Welcome" en el archivo .bashrc) se interpreta como un mensaje de error y una línea nula (echo "") hace que el cliente SCP se bloquee esperando a que se complete el mensaje de error.

Programa scp

El programa SCP 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 scp de línea de comandos OpenSSH, que se proporciona en la mayoría de las implementaciones SSH. El programa scp es el análogo seguro del comando rcp. El programa scp debe ser parte de todos los servidores SSH que quieran proporcionar servicio SCP, ya que scp también funciona como servidor SCP. Desde OpenSSH 9.0, el programa se ha actualizado para utilizar el protocolo SFTP más nuevo y seguro; Se agrega una opción -O para usar SCP con servidores antiguos solo para SCP.

Sintaxis

Normalmente, la sintaxis del programa scp es como la sintaxis de cp (copiar):

Copiar un archivo local a un host remoto:

scp LocalSourceFile usuario@remoto:directorio/ObjetivoFile

Copiar archivo desde el host remoto y copiar carpeta desde el host remoto (con el modificador -r):

scp usuario@remoto:directorio/SourceFile LocalTargetFilescp -r usuario@anfitrión:directorio/SourceFolder LocalTargetFolder

Tenga en cuenta que si el host remoto utiliza un puerto distinto al predeterminado 22, se puede especificar en el comando. Por ejemplo, copiar un archivo del host:

scp -P 2222 usuario@anfitrión:directorio/SourceFile ObjetivoFile

Otros clientes

Como el Protocolo de copia segura implementa transferencias de archivos únicamente, los clientes GUI SCP son raros, ya que implementarlo requiere funcionalidad adicional (al menos un listado de directorios). Por ejemplo, WinSCP utiliza de forma predeterminada el protocolo SFTP. Incluso cuando operan en modo SCP, los clientes como WinSCP generalmente no son clientes SCP puros, ya que deben usar otros medios para implementar la funcionalidad adicional (como el comando ls). Esto, a su vez, genera 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 relacionada con la herramienta y el protocolo SCP openssh que permite a los usuarios sobrescribir archivos arbitrarios en el directorio de destino del cliente SCP.

Más resultados...
Tamaño del texto:
undoredo
format_boldformat_italicformat_underlinedstrikethrough_ssuperscriptsubscriptlink
save