En informática , el Protocolo de Transferencia de Archivos SSH , también conocido como Protocolo de Transferencia Segura de Archivos ( SFTP ), es un protocolo de red que proporciona acceso , transferencia y gestión de archivos a través de cualquier flujo de datos fiable . Fue diseñado por el Grupo de Trabajo de Ingeniería de Internet (IETF) como una extensión del protocolo Secure Shell (SSH) versión 2.0 para proporcionar capacidades de transferencia segura de archivos, y se considera un reemplazo del Protocolo de Transferencia de Archivos (FTP) debido a su seguridad superior. [ 1 ] El Borrador de Internet del IETF establece que, aunque este protocolo se describe en el contexto del protocolo SSH-2, podría utilizarse en diversas aplicaciones, como la transferencia segura de archivos a través de Transport Layer Security (TLS) y la transferencia de información de gestión en aplicaciones VPN .
Este protocolo presupone que se ejecuta a través de un canal seguro , como SSH, que el servidor ya ha autenticado al cliente y que la identidad del usuario cliente está disponible para el protocolo.
El esquema URI oficial es sftp. [ 2 ]
Capacidades
En comparación con el protocolo SCP , que solo permite transferencias de archivos, el protocolo SFTP permite una variedad de operaciones en archivos remotos, lo que lo asemeja más a un protocolo de sistema de archivos remoto. [ 3 ] Las capacidades adicionales de un cliente SFTP incluyen la reanudación de transferencias interrumpidas, listados de directorios y eliminación remota de archivos. [ 4 ] También es compatible con todos los tipos de archivos UNIX, incluidos los enlaces simbólicos. [ 5 ]
SFTP intenta ser más independiente de la plataforma que SCP; con SCP, por ejemplo, la expansión de los comodines especificados por el cliente depende del servidor, mientras que el diseño de SFTP evita este problema. Si bien SCP se implementa con mayor frecuencia en plataformas Unix , los servidores SFTP están disponibles en la mayoría de las plataformas. En SFTP, la transferencia de archivos se puede finalizar fácilmente sin terminar la sesión, como ocurre con otros mecanismos.
SFTP no es FTP ejecutándose sobre SSH , sino un nuevo protocolo diseñado desde cero por el grupo de trabajo SECSH de la IETF . A veces se confunde con el Protocolo Simple de Transferencia de Archivos . [ 6 ]
El protocolo en sí no proporciona autenticación ni seguridad; espera que el protocolo subyacente se encargue de ello. SFTP se utiliza con mayor frecuencia como subsistema de las implementaciones del protocolo SSH versión 2, ya que fue diseñado por el mismo grupo de trabajo. Sin embargo, es posible ejecutarlo sobre SSH-1 (y algunas implementaciones lo admiten) u otros flujos de datos. No obstante, ejecutar un servidor SFTP sobre SSH-1 no es independiente de la plataforma, puesto que SSH-1 no admite el concepto de subsistemas. Un cliente SFTP que se conecta a un servidor SSH-1 debe conocer la ruta al binario del servidor SFTP en el servidor.
Los archivos subidos pueden asociarse con sus atributos básicos, como la marca de tiempo. Esto supone una ventaja respecto al protocolo FTP convencional .
Historia y desarrollo
El grupo de trabajo "Secsh" del Grupo de Trabajo de Ingeniería de Internet (IETF), responsable del desarrollo del protocolo Secure Shell versión 2 (RFC 4251), también intentó elaborar una extensión de dicho estándar para la funcionalidad de transferencia segura de archivos. Se crearon borradores de Internet que revisaron sucesivamente el protocolo en nuevas versiones. [ 7 ] La industria del software comenzó a implementar diversas versiones del protocolo antes de que los borradores se estandarizaran. A medida que avanzaba el desarrollo, el alcance del proyecto de transferencia de archivos Secsh se amplió para incluir el acceso y la gestión de archivos . Finalmente, el desarrollo se estancó cuando algunos miembros del comité comenzaron a considerar SFTP como un protocolo de sistema de archivos , y no solo como un protocolo de acceso o transferencia de archivos , lo que lo sitúa fuera del ámbito del grupo de trabajo. [ 8 ] Tras una pausa de siete años, en 2013 se intentó reiniciar el trabajo en SFTP utilizando el borrador de la versión 3 como base. [ 9 ]
Versiones 0–2
Antes de la participación del IETF, SFTP era un protocolo propietario de SSH Communications Security , diseñado por Tatu Ylönen con la ayuda de Sami Lehtinen en 1997. [ 10 ] Las diferencias entre las versiones 0–2 y la versión 3 se enumeran en la sección 10 del borrador draft-ietf-secsh-filexfer-02 .
Versión 3
Al inicio del proyecto IETF Secure Shell File Transfer, el grupo Secsh declaró que el objetivo del protocolo de transferencia de archivos SSH era proporcionar una funcionalidad segura de transferencia de archivos a través de cualquier flujo de datos fiable y ser el protocolo de transferencia de archivos estándar para su uso con el protocolo SSH-2.
Los borradores 00 a 02 del documento "Internet Draft" de la IETF definen las revisiones sucesivas de la versión 3 del protocolo SFTP.
- Protocolo de transferencia de archivos SSH, borrador 00, enero de 2001
- Protocolo de transferencia de archivos SSH, borrador 01, marzo de 2001
- Protocolo de transferencia de archivos SSH, borrador 02, octubre de 2001
Versión 4
Los borradores 03 y 04 del borrador de Internet de la IETF definen la versión 4 del protocolo.
- Protocolo de transferencia de archivos SSH, borrador 03, octubre de 2002
- Protocolo de transferencia de archivos SSH, borrador 04, diciembre de 2002
Versión 5
El borrador 05 del borrador de Internet de la IETF define la versión 5 del protocolo.
- Protocolo de transferencia de archivos SSH, borrador 05, enero de 2004
Versión 6
Los borradores 06 a 13 del borrador de Internet de la IETF definen las revisiones sucesivas de la versión 6 del protocolo.
- Protocolo de transferencia de archivos SSH, borrador 06, octubre de 2004
- Protocolo de transferencia de archivos SSH, borrador 07, marzo de 2005
- Protocolo de transferencia de archivos SSH, borrador 08, abril de 2005
- Protocolo de transferencia de archivos SSH, borrador 09, junio de 2005 : se agregaron bloqueos de rango de bytes. Cambios en la ACL. Se reorganizaron los parámetros de la solicitud SSH_FXP_REALPATH.
- Protocolo de transferencia de archivos SSH, borrador 10, junio de 2005 : se eliminaron las extensiones "vendor-id", "md5-hash", "space-available" y "home-directory". Cambios en la ACL.
- Protocolo de transferencia de archivos SSH, borrador 11, enero de 2006 : especificación completa de la transferencia de ACL. Cambios editoriales.
- Protocolo de transferencia de archivos SSH, borrador 12, enero de 2006 : se añadieron las "consideraciones de IANA". Ahora se permite un parámetro de tamaño para la creación de archivos como señal de recomendación.
- Protocolo de transferencia de archivos SSH, borrador 13, julio de 2006 – cambios editoriales
Extensiones
El protocolo SFTP admite una forma genérica de indicar comandos extendidos, junto con un método para incluirlos en la negociación de versiones. Se solicita un registro de la IANA, pero dado que el protocolo nunca se convirtió en un estándar oficial, no se ha creado dicho registro. [ 5 ]
- El borrador 13 especifica text-seek , supported2 , acl-supported , newline , versions , version-select , filename-charset , filename-translation-control . [ 5 ]
- OpenSSH, la implementación más extendida, define constantes para convertir los valores ST_NOSUID y ST_RDONLY a través del protocolo, utilizando el identificador de versión statvfs@openssh.com . Solo implementa la versión 3 del borrador 1. [ 11 ]
Software
Cliente SFTP
El término SFTP también puede referirse a Programa de transferencia segura de archivos , un programa de línea de comandos que implementa la parte del cliente de este protocolo. Como ejemplo, el programa sftp incluido con OpenSSH implementa esto. [ 12 ]
Algunas implementaciones del scpprograma admiten los protocolos SFTP y SCP para realizar transferencias de archivos, dependiendo de lo que admita el servidor. El programa scp incluido en OpenSSH 9.0 y versiones posteriores utiliza SFTP por defecto. [ 13 ]
Servidor SFTP
Algunas implementaciones de servidores FTP implementan el protocolo SFTP; sin embargo, fuera de los servidores de archivos dedicados, la compatibilidad con el protocolo SFTP suele proporcionarse mediante una implementación de servidor SSH , ya que comparte el puerto predeterminado 22 con otros servicios SSH. Las implementaciones de SFTP pueden incluir una implementación del protocolo SSH para aprovechar la integración de los detalles de conexión SSH con los controles de acceso preexistentes del servidor FTP, cuando se tolera un servidor SSH alternativo o cuando se pueden usar puertos alternativos. Se puede utilizar un servidor SSH-2 que admita subsistemas para mantener una implementación SSH uniforme a la vez que se mejoran los controles de acceso con software de terceros, a costa de una integración más granular con los detalles de conexión y la compatibilidad con SSH-1.
Proxy SFTP
Es difícil controlar las transferencias SFTP en los dispositivos de seguridad del perímetro de la red. Existen herramientas estándar para registrar las transacciones FTP , como TIS gdev o SUSE FTP proxy, pero SFTP está cifrado, lo que hace que los proxies tradicionales sean ineficaces para controlar el tráfico SFTP.
Existen algunas herramientas que implementan ataques de intermediario (man-in-the-middle) para SSH y que también ofrecen control SFTP. Ejemplos de estas herramientas son Shell Control Box de Balabit [ 14 ] y CryptoAuditor de SSH Communications Security [ 15 ] (el desarrollador original del protocolo Secure Shell), que proporciona funciones como el registro de transacciones SFTP y el registro de los datos transmitidos.
Véase también
- Comparación de clientes SSH
- Comparación de servidores SSH
- Comparación de protocolos de transferencia de archivos
- PEZ
- FTPS
- Lsh : un servidor GNU SSH-2 y SFTP para sistemas operativos tipo Unix.
- SSHFS y Rclone : montaje de sistemas de archivos remotos mediante SFTP y SSH.
- Categoría: Clientes FTP
- Categoría: Clientes del protocolo de transferencia de archivos SSH
Referencias
- ↑ Smallcombe, Mark (21 de septiembre de 2023). "Qué es, cómo funciona y por qué funciona SFTP" . integrate.io . Consultado el 28 de abril de 2025 .
- ↑ https://www.iana.org/assignments/uri-schemes/prov/sftp
- ↑ NetSuite.com. "Ahorre tiempo y dinero: automatice su negocio" . Oracle NetSuite . Archivado del original el 20 de julio de 2025. Consultado el 18 de diciembre de 2025 .
- ↑ Victoria, Jaynor; Victoria, Beverly (2001), SSH, The Secure Shell: The Definitive Guide , Cambridge: O'Reilly, ISBN 0-596-00011-1
- 1 2 3 Galbraith, Joseph; Saarenmaa, Oskari (18 de julio de 2006). "Protocolo de transferencia de archivos SSH" . Grupo de trabajo de ingeniería de Internet.
- ↑ Barrett, Daniel; Silverman, Richard E. (2001), SSH, The Secure Shell: The Definitive Guide , Cambridge: O'Reilly, ISBN 0-596-00011-1
- ↑ "Páginas de estado de Secsh" . Tools.ietf.org. Archivado del original el 4 de mayo de 2021. Consultado el 20 de agosto de 2012 .
- ↑ "ietf.secsh—Consulta formal previa al cierre del grupo de trabajo secsh—msg#00010—Discusión reciente" . Osdir.com. 14 de agosto de 2006. Archivado del original el 20 de marzo de 2012. Consultado el 20 de agosto de 2012 .
- ↑ Moonesamy, S. (2013-07-12). "Protocolo de transferencia de archivos SSH—draft-moonesamy-secsh-filexfer-00" . Tools.ietf.org.
- ↑ "fd forwarding, take 2" (TXT) . www.ietf.org .
- ↑ "openssh-portable sftp.h" . GitHub . OpenSSH. 24 de mayo de 2023.
- ↑ "Página del manual de OpenBSD para el comando "sftp": sección "Ver también"" . OpenBSD.org . Consultado el 4 de febrero de 2018 .
- ↑ "OpenSSH 9.0" . Notas de la versión de OpenSSH . 8 de abril de 2022.
- ↑ "Registrar SSH/RDP/Citrix en el registro de auditoría: dispositivo de monitorización de actividad" . Balabit.com . Consultado el 20 de agosto de 2012 .
- ↑ "Control y monitorización de acceso privilegiado" . SSH.com . Consultado el 25 de noviembre de 2014 .
- protocolos de transferencia de archivos de red
- Concha segura
