Qué es el protocolo de transferencia de archivos SSH (SFTP)

Qué es el protocolo de transferencia de archivos SSH (SFTP)

09:36, 16.05.2024

Contenido del artículo
arrow

  • Descripción general de SSH y SFTP
  • El mecanismo del subsistema SSH
  • Creación de ejecutables para subsistemas
  • Configuración del subsistema
  • Configuración de SFTP
  • Descripción general del comando SFTP
  • Comandos básicos de uso cotidiano
  • Actualizaciones y ampliaciones de la funcionalidad SFTP
  • Comandos propios para tareas especializadas
  • Comprobaciones de almacenamiento en un entorno SFTP
  • Conclusión

Descripción general de SSH y SFTP

Para tener una idea general de las principales características de SFTP. Vamos a discutir algunos elementos cruciales que destacan este protocolo de los demás y son tales como la seguridad de los datos, la gestión de archivos para sistemas remotos y locales, la autenticación de claves, la navegación de directorios en el lado del servidor y del cliente, y también la compatibilidad con la mayoría de los sistemas operativos. Si hablamos específicamente de la seguridad de la transferencia de datos, el funcionamiento de SFTP se basa en el protocolo SSH para el cifrado y la protección adicional.  

En caso de autenticación y autorización adecuadas, SSH permite cualquier tipo de comando necesario en el shell.

Al mismo tiempo, al hablar específicamente de SFTP, tiene un número bastante limitado de comandos disponibles que, obviamente, están relacionados con la transferencia de archivos. SFTP está más restringido a SSH que a otros protocolos, por lo que no debería considerarse totalmente independiente.

El mecanismo del subsistema SSH

El subsistema puede ejecutarse sobre el protocolo SSH como capa de abstracción. Vamos a explicar prácticamente cómo podemos hacerlo con la creación de ejecutables.  

Creación de ejecutables para subsistemas

Empecemos con el script simple y coloquémoslo en /usr/lib/openssh/:

$ cat /usr/lib/openssh/xid.sh
#!/usr/bin/env bash
hostname
$ chmod +x /usr/lib/openssh/xid.sh

Configuración del subsistema

Para la configuración del sistema, vamos a utilizar /etc/ssh/sshd_config. Aquí estamos configurando xid como subsistema:

$ cat /etc/ssh/sshd_config
[...]
# override default of no subsystems
Subsystem  xid  /usr/lib/openssh/xid.sh
[...]

Configuración de SFTP

Dejémoslo claro, pero los servidores SFTP también se consideran subsistemas de SSH. Además de esto, los clientes ssh y sftp son casi equivalentes cuando se utiliza -s sftp:

$ ssh [...] -s sftp

Descripción general del comando SFTP

Dependiendo de la implementación SFTP del servidor, hay algunas partes que están restringidas a SSH puro y otras que son SFTP. Esto significa que algunas están integradas en sshd, y al mismo tiempo, otras están separadas como sftp-server.

Comandos básicos de uso cotidiano

Para revisar todos los comandos más básicos soportados por SFTP, puede utilizar la ayuda. Escribiendo help en el prompt de sftp, aparecerá la lista con los puntos más esenciales sobre la transferencia de archivos, eliminación, y mucho más.

Aquí tiene un par de ejemplos para que los pruebe:

  • chmod [-h] mode path - modificar los permisos del archivo 'path' a 'mode
  • version - revisar la versión actual de SFTP
  • ? - este comando se puede utilizar en lugar de help, y obtendrá la misma salida                            
  • chown [-h] own path - modifica el propietario del archivo 'path' a 'own'         
  • bye - detiene SFTP  
  • cd ruta - modifica la ruta remota directa a 'ruta'.
  • chgrp [-h] grp path - modifica el grupo del fichero
  • !command - realiza un comando específico que se inserta después de '!' en el shell local

Actualizaciones y ampliaciones de la funcionalidad SFTP

Las especificaciones de SFTP ya están disponibles en varias versiones, empezando por la 3ª y terminando por la 6ª. Sin embargo, por regla general, sólo la versión por defecto o la 3ª es soportada por OpenSSH y algunos otros servidores SSH.

Por supuesto, no es un problema y puedes reemplazar fácilmente esta versión por defecto por la preferida, pero en algunos escenarios, el funcionamiento de SSH y otras versiones puede ser inconsistente. Desde otra perspectiva, la versión 3 puede facilitar adecuadamente cualquier código necesario por lo que no es un problema en absoluto.  

Comandos propios para tareas especializadas

Dado que este tipo de protocolo funciona en servidores SSH, todos los comandos deben ejecutarse a través de ssh. Por ejemplo, para comprobar el almacenamiento disponible del servidor, utilice el siguiente comando:

$ ssh jane@145.123.5.55 df

Comprobaciones de almacenamiento en un entorno SFTP

Las comprobaciones de almacenamiento en el entorno SFTP son extremadamente importantes por varias razones, pero de alguna manera dichas comprobaciones no están incluidas en la versión inicial de este protocolo.

Por esta razón, puede utilizar la implementación statvfs para las comprobaciones. Por lo tanto, utilice el comando df de esta manera:

sftp > df -h

Si hablamos de la sexta versión de SFTP, los usuarios pueden comprobar el almacenamiento inmediatamente sin necesidad de la implementación anteriormente mencionada. Aquí hay varias aplicaciones que pueden aprovechar esta funcionalidad:

  • WinSCP
  • ProFTPD
  • Bitvise

La utilización de cualquier tipo de combinación cliente-servidor será suficiente para contactar con los controles a través de una determinada función.

Conclusión

Aquí, compartimos un par de recomendaciones prácticas y comandos útiles para el SFTP y su correcto funcionamiento a SSH. Aunque la mayoría de las características de este protocolo no están implementadas en la mayoría de los servidores, puede probar fácilmente el uso de extensiones.

views 4m, 21s
views 2
Compartir

¿Te ha resultado útil este artículo?

Ofertas populares de VPS

Otros artículos sobre este tema

cookie

¿Acepta las cookies y la política de privacidad?

Utilizamos cookies para asegurar que damos la mejor experiencia en nuestro sitio web. Si continúa sin cambiar la configuración, asumiremos que acepta recibir todas las cookies del sitio web HostZealot.