Comando Linux sftp
Manual completo de comandos Linux
¿Qué es sftp?
SFTP (SSH File Transfer Protocol) es un protocolo seguro de transferencia de archivos que transfiere archivos a través de un canal cifrado SSH (Secure Shell). A diferencia del FTP tradicional, SFTP ofrece mayor seguridad; todos los datos transferidos se cifran.
Diferencias entre SFTP y FTP
| Característica | SFTP | FTP |
|---|---|---|
| Seguridad | Transmisión cifrada | Transmisión en texto plano |
| Puerto | 22 (puerto SSH) | 21 (puerto de control) + 20 (puerto de datos) |
| Protocolo | Basado en SSH | Protocolo independiente |
| Compatibilidad con cortafuegos | Solo necesita abrir un puerto | Necesita abrir varios puertos |
Sintaxis básica del comando sftp
sftp [选项] [用户名@]主机名[:路径]
Opciones y parámetros comunes
| Opción | Descripción |
|---|---|
-P 端口号 |
Especifica el puerto de conexión (por defecto 22) |
-b 批处理文件 |
Ejecuta comandos de un archivo por lotes |
-r |
Copia recursivamente todo el directorio |
-v |
Muestra información de depuración detallada |
-i 私钥文件 |
Usar el archivo de clave privada especificado para autenticación |
Conectar al servidor SFTP
Método de conexión básica
Ejemplo
sftp username@hostname
Ejemplo:
Ejemplo
sftp user@example.com
Conexión con puerto específico
Si el servidor usa un puerto no estándar (no el 22):
Ejemplo
sftp -P 2222 user@example.com
Usar autenticación con clave
Ejemplo
sftp -i ~/.ssh/id_rsa user@example.com
Comandos de operación comunes de SFTP
1. Operaciones con archivos locales
| Comando | Descripción |
|---|---|
lls |
Lista el contenido del directorio local |
lcd |
Cambia el directorio de trabajo local |
lmkdir |
Crea un directorio en local |
lrm |
Elimina archivos locales |
2. Operaciones con archivos remotos
| Comando | Descripción |
|---|---|
ls |
Lista el contenido del directorio remoto |
cd |
Cambia el directorio de trabajo remoto |
mkdir |
Crea un directorio en remoto |
rm |
Elimina archivos remotos |
rename |
Renombra archivos remotos |
3. Transferencia de archivos
| Comando | Descripción |
|---|---|
put 本地文件 [远程路径] |
Sube archivos al servidor remoto |
get 远程文件 [本地路径] |
Descarga archivos del servidor remoto |
mput 本地文件* |
Sube múltiples archivos |
mget 远程文件* |
Descarga múltiples archivos |
Ejemplos prácticos
Ejemplo 1: Subir un archivo al servidor
Ejemplo
sftp user@example.com
sftp> cd /var/www/html
sftp> put index.html
sftp> exit
sftp> cd /var/www/html
sftp> put index.html
sftp> exit
Ejemplo 2: Descargar todo un directorio (recursivo)
Ejemplo
sftp -r user@example.com:/backups /local/backups
Ejemplo 3: Usar archivos por lotes
Crearsftp_commands.txt:
put file1.txt put file2.txt get report.pdf exit
Ejecutar el lote:
Ejemplo
sftp -b sftp_commands.txt user@example.com
Consejos avanzados
1. Transferir múltiples archivos con comodines
Ejemplo
sftp> mput *.jpg # Subir todos los archivos jpg
sftp> mget log_*.txt # Descargar todos los archivos txt que comiencen con log_
sftp> mget log_*.txt # Descargar todos los archivos txt que comiencen con log_
2. Cambiar permisos de archivos
Ejemplo
sftp> chmod 644 index.html
3. Ver información de archivos
Ejemplo
sftp> ls -l
4. Usar enlaces simbólicos
Ejemplo
sftp> symlink /path/to/original /path/to/link
Solución de problemas comunes
1. Conexión rechazada
- Comprueba si el servidor tiene el servicio SSH en ejecución
- Verifica que el puerto sea correcto
- Revisa la configuración del cortafuegos
2. Fallo de autenticación
- Confirma que el nombre de usuario y la contraseña sean correctos
- Verifica los permisos del archivo de clave (deben ser 600)
- Asegúrate de que tu clave pública esté en el servidor
3. Transferencia de archivos interrumpida
- Comprueba la conexión de red
- Intenta usar
regetyreputel comando para reanudar la transferencia
4. Permisos insuficientes
- Comprueba los permisos de escritura del directorio remoto
- Puede ser necesario usar
sudo(pero sftp normalmente no admite sudo directo)
Mejores prácticas de seguridad
- Usar autenticación con claveen lugar de autenticación por contraseña
- Limitar los permisos de los usuarios, usar entorno chroot
- Actualizar periódicamenteel software del servidor SSH
- Deshabilitar el inicio de sesión root, usar un usuario normal + sudo
- Supervisar los archivos de registro(/var/log/auth.log)
Resumen
SFTP es una herramienta importante para transferir archivos de forma segura en sistemas Linux. Con esta guía, deberías haber aprendido:
- Los conceptos básicos de SFTP y los métodos de conexión
- Los comandos comunes de operación y transferencia de archivos
- Trucos prácticos de procesamiento por lotes y consejos avanzados
- Soluciones a problemas comunes
- Mejores prácticas para un uso seguro
¡Ahora puedes transferir archivos entre tu equipo local y el servidor remoto de forma segura y eficiente!
Otras extensiones