Skip to content

gocryptfs

gocryptfs es un sistema de archivos encriptado que funciona en el espacio de usuario. Utiliza cifrado AES-GCM y se integra de forma transparente en tu sistema, permitiéndote trabajar con archivos encriptados como si fueran normales. Es la solución ideal para proteger carpetas en USBs o sincronizar con servicios de nube.


import { Tabs, TabItem } from ‘@astrojs/starlight/components’;

Terminal window
sudo apt update
sudo apt install gocryptfs
Terminal window
sudo pacman -S gocryptfs
Terminal window
sudo dnf install gocryptfs

gocryptfs utiliza dos carpetas:

  • Carpeta cifrada (cipher): Contiene los archivos encriptados. Puedes sincronizar esta carpeta con la nube o copiarla sin preocupaciones.
  • Punto de montaje (plain): Carpeta donde se muestran los archivos descifrados al introducir la contraseña.
Terminal window
# Ejemplo de estructura en tu USB
/mnt/usb/
├── carpeta_cifrada/ # Archivos encriptados (visibles pero inaccesibles)
└── carpeta_acceso/ # Punto de montaje (solo visible tras autenticación)

mkdi> Elige una contraseña segura. Si la olvidas, tus archivos serán irrecuperables. No hay mecanismo de recuperación.

Terminal window
# Dentro de tu USB o directorio deseado
mkdir carpeta_cifrada carpeta_acceso

Inicializar la encriptación (solo primera vez)

Section titled “Inicializar la encriptación (solo primera vez)”
Terminal window
gocryptfs -init carpeta_cifrada

Te pedirá que introduzcas y confirmes una contraseña. Esto generará los archivos de configuración gocryptfs.conf y gocryptfs.diriv en carpeta_cifrada.


Montar (acceder a los archivos descifrados)

Section titled “Montar (acceder a los archivos descifrados)”
Terminal window
gocryptfs carpeta_cifrada carpeta_acceso

Introduce tu contraseña y la carpeta carpeta_acceso mostrará tus archivos en texto plano. Puedes trabajar con ellos normalmente.

Terminal window
fusermount -u carpeta_acceso

Los archivos quedan nuevamente encriptados e inaccesibles sin la contraseña.


Terminal window
# Guardar contraseña en un archivo (¡con permisos seguros!)
echo "mi_contraseña_segura" > ~/.gocryptfs_pass
chmod 600 ~/.gocryptfs_pass
# Montar usando el archivo
gocryptfs -passfile ~/.gocryptfs_pass carpeta_cifrada carpeta_acceso
Terminal window
gocryptfs -ro carpeta_cifrada carpeta_acceso

Forzar montaje (si hubo un cierre abrupto)

Section titled “Forzar montaje (si hubo un cierre abrupto)”
Terminal window
gocryptfs -force_owner carpeta_cifrada carpeta_acceso

gocryptfs es rápido gracias a su diseño ligero, pero puedes mejorar el rendimiento con estas opciones:

Desactivar cifrado de nombres de archivo (más rápido)

Section titled “Desactivar cifrado de nombres de archivo (más rápido)”
Terminal window
# Inicializar sin cifrar nombres (solo contenido)
gocryptfs -init -plaintextnames carpeta_cifrada

Usar reverse mode (encriptar carpeta existente)

Section titled “Usar reverse mode (encriptar carpeta existente)”
Terminal window
# Crea una vista encriptada de una carpeta ya existente
gocryptfs -reverse /ruta/origen /ruta/destino_encriptado

Terminal window
# Subir solo la carpeta cifrada a la nube
rclone sync carpeta_cifrada/ mi_cloud:/backup/
# Al restaurar, solo necesitas montar nuevamente
gocryptfs carpeta_cifrada carpeta_acceso
Terminal window
# Puedes copiar la carpeta cifrada sin problemas
cp -r carpeta_cifrada/ /media/otro_usb/

Terminal window
# Verificar montajes activos
mount | grep gocryptfs
# Forzar desmontaje
fusermount -uz carpeta_acceso

No es posible. La única forma es tener una copia de seguridad de la clave maestra generada durante la inicialización.

Terminal window
# Si guardaste la clave maestra (se muestra al inicializar)
gocryptfs -masterkey="tu_clave_maestra" carpeta_cifrada carpeta_acceso
Terminal window
# Si el sistema se apagó abruptamente, usa fsck
gocryptfs -fsck carpeta_cifrada

Terminal window
# Ver versión y estado
gocryptfs -version
# Ver estadísticas de uso
gocryptfs -stats
Terminal window
# Solo funciona si tienes la contraseña actual
gocryptfs -passwd carpeta_cifrada
Terminal window
# Añadir a .bashrc o .zshrc
alias montar-usb='gocryptfs /media/usb/cifrada /media/usb/acceso'
alias desmontar-usb='fusermount -u /media/usb/acceso'

Recuerda: gocryptfs es ideal para proteger datos sensibles en USBs o en la nube. Su diseño archivo por archivo permite sincronización eficiente y no requiere espacio reservado, a diferencia de los contenedores tradicionales como VeraCrypt.