SSH (Secure SHell) File Transfer Protocol, también conocido como SFTP o Secure File Transfer Protocol) es un protocolo del nivel de aplicación que proporciona la funcionalidad necesaria para la transferencia y manipulación de archivos sobre un flujo de datos fiable. Se utiliza comúnmente con SSH para proporcionar la seguridad a los datos, aunque permite ser usado con otros protocolos de seguridad. Por lo tanto, la seguridad no la provee directamente el protocolo SFTP, sino SSH o el protocolo que sea utilizado en su caso para este cometido.
El protocolo SFTP permite una serie de operaciones sobre archivos remotos. SFTP intenta ser más independiente de la plataforma que SCP, por ejemplo, con el SCP encontramos la expansión de comodines especificados por el cliente hasta el servidor, mientras que el diseño SFTP evita este problema. Aunque SCP se aplica con más frecuencia en plataformas Unix, existen servidores SFTP en la mayoría de las plataformas.
El Secure Internet Live Conferencing (SILC) define el protocolo SFTP como su protocolo de transferencia de archivos por omisión. En el SILC, los datos del protocolo SFTP no están protegidos con SSH pero el protocolo de paquetes seguros de SILC se utiliza para encapsular los datos SFTP dentro de los paquetes de SILC para que se la llevara de igual a igual (peer to peer, P2P). Esto es posible ya que SFTP está diseñado para ser un protocolo independiente.
SFTP utiliza el puerto 22 de TCP.
Upload (subida de archivos)
Para la subida de archivos, los archivos transferidos pueden estar asociados con sus atributos básicos, como el de tiempo. Esta última es una ventaja sobre el protocolo FTP común, ya que no dispone de ningún crédito para incluir archivos en la fecha original.
Clientes de SFTP
Para los clientes que utilizan SFTP, los programas de SFTP ofrece una interfaz interactiva similar a la de los tradicionales programas de FTP. Algunas implementaciones del programa SCP, en realidad usan el protocolo SFTP para realizar transferencias de archivos, sin embargo, algunas de estas implementaciones están todavía en condiciones de emergencia al protocolo SCP si el servidor SFTP no ofrece servicio.
SFTP en la actualidad
En cuanto a la utilización o normalización del protocolo no es aún un estándar de Internet. La última especificación es un caducado Proyecto de Internet, que define la versión 6 del protocolo. En la actualidad, la versión más utilizada es la versión 3, ejecutada por el popular servidor de SFTP OpenSSH. Muchos Windows basan sus implementaciones en servidores SFTP al utilizar la versión 4 del protocolo, que redujo sus vínculos con la plataforma Unix.
Algunas confusiones
Un error muy común que suele ocurrir cuando se nombra SFTP es pensar en que el protocolo SFTP se obtiene al ejecutar FTP sobre SSH, realmente estamos ante un nuevo protocolo diseñado por el grupo de trabajo IETF SECSH. Otro error generalizado es la confusión de las siglas SFTP ya que muchas veces es confundido con el Protocolo Simple de Transferencia de Archivos, un programa de línea de comando que el cliente ejecuta parte de este protocolo. El protocolo SFTP en sí no facilita la autenticación y la seguridad, sino que espera que el protocolo subyacente asegure a este. SFTP es utilizado frecuentemente como subsistema del protocolo SSH, al haber sido diseñadas por el mismo grupo . Sin embargo, es posible ejecutarlo a través de SSH (y algunas implementaciones que lo soporten) o de otros flujos de datos. Un cliente de protocolo SFTP dispuesto a conectarse a un servidor SSH necesita conocer la ruta de acceso al servidor SFTP binario en el lugar del servidor cualquiera.