Qué es el protocolo de transferencia de archivos SSH (SFTP)
09:36, 16.05.2024
La seguridad del protocolo de transferencia siempre ha sido un tema importante para diversos usuarios. Es por eso que los protocolos más antiguos como FTPS y FTP no son tan populares como la opción más moderna - SFTP. SSH File Transfer Protocol es una variante impresionante que tiene una variedad de características y se basa en SSH.
Aquí en el artículo, profundizaremos en la comprensión de SFTP y compartiremos un par de buenas recomendaciones para comprobar el espacio de almacenamiento. Además, discutiremos un par de comandos SFTP útiles.
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.