Resumen
SFTP (SSH File Transfer Protocol) fue desarrollado para reemplazar a FTP, que es vulnerable a problemas de seguridad. El comando `sftp` cifra todos los datos y comandos utilizando una conexión SSH, lo que elimina el riesgo de que nombres de usuario, contraseñas o contenidos de archivos sean expuestos en la red. Al igual que FTP, soporta el modo interactivo y es similar en uso, lo que facilita su manejo para usuarios familiarizados con FTP.
Características Clave
Las principales características del comando sftp son las siguientes:
- Cifra todas las comunicaciones basándose en SSH.
- Ofrece una interfaz de comandos interactiva similar a FTP.
- Utiliza un solo puerto (por defecto el 22), lo que es ventajoso en entornos con firewall.
- Soporta varias funciones como la carga de archivos (`put`), la descarga (`get`) y el cambio de directorios (`cd`, `lcd`).
SFTP vs FTP
SFTP y FTP difieren significativamente en los métodos de transferencia de archivos y en los aspectos de seguridad.
- SFTP: Seguro porque cifra los datos a través de SSH. Utiliza el puerto 22 y maneja toda la comunicación a través de un único puerto.
- FTP: Vulnerable a la seguridad porque transmite datos en texto plano. Utiliza el puerto 21 y requiere puertos adicionales para la transferencia de datos.
Opciones Principales
sftp se puede usar en modo interactivo, de forma similar a FTP, o de forma no interactiva con comandos específicos.
1) Opciones de Ejecución
2) Comandos Internos del Modo Interactivo
Comando generado:
Combina los comandos.
Descripción:
`sftp` Ejecutando el comando.
Combina las opciones anteriores para ejecutar virtualmente los comandos junto con la IA.
Ejemplos de Uso
Familiarícese con las funciones del comando sftp a través de varios ejemplos de uso.
Conectarse al servidor en modo interactivo
sftp user@server.com
Conéctese a `server.com` con la cuenta `user` para entrar en modo interactivo.
Descargar archivo
sftp user@server.com
... (después de conectar)
cd /var/log
get syslog ~
Descarga el archivo `syslog` del directorio `/var/log` del servidor remoto al directorio `~` local.
Subir archivo
sftp user@server.com
... (después de conectar)
cd /var/www
put /home/user/document.txt
Sube el archivo `/home/user/document.txt` local al directorio `/var/www` del servidor remoto.
Transferencia de archivos en modo no interactivo
sftp user@server.com:/remote/path <<< 'put localfile.txt'
Usa el comando `put` en modo no interactivo para subir un archivo de una sola vez.
Instalación
sftp se incluye por defecto en la mayoría de las distribuciones de Linux como parte del paquete `openssh-client`. Si el cliente SSH ya está instalado, no se necesita ninguna instalación adicional.
Debian/Ubuntu
sudo apt update
sudo apt install -y openssh-client
RHEL/CentOS/Fedora
sudo dnf install -y openssh-clients
Consejos y Precauciones
Aquí hay algunos puntos a tener en cuenta al usar el comando sftp.
Consejos
- sftp, al igual que `scp`, utiliza información de autenticación SSH. Por lo tanto, puede gestionar fácilmente la configuración de la conexión utilizando el archivo `~/.ssh/config`.
- En modo interactivo, escribir `help` le mostrará una lista de todos los comandos internos. Además de `put` y `get`, puede usar `mput` y `mget` para transferir varios archivos.
- Si se producen problemas de red o errores de autenticación, usar la opción `-v` para mostrar información detallada puede ayudar a solucionar el problema.