Gestor de Contraseñas en Bash con GPG

por | Feb 4, 2026 | Bash, Scripts, Tools

Presento KeySentinel, un gestor de contraseñas desarrollado íntegramente en Bash, pensado como ejercicio práctico de seguridad, scripting y criterios sysadmin.

La idea no fue competir con soluciones maduras como Bitwarden o 1Password, sino entender cómo funciona un gestor de credenciales por dentro: cifrado, sesiones, control de acceso y manejo seguro de información sensible desde la línea de comandos.

Este proyecto está orientado a:

  • Administradores de sistemas en formación.
  • Usuarios avanzados de Linux.
  • Personas que quieren entender qué pasa realmente cuando almacenan contraseñas.

Problema a resolver

En entornos Linux minimalistas o servidores, muchas veces:

  • No hay entorno gráfico.
  • No se quiere depender de servicios externos.
  • Se necesita algo simple, local y cifrado.

KeySentinel aborda este escenario con una solución:

  • 100% local.
  • Basada en herramientas estándar (Bash + GPG).
  • Con control de sesión.

¿Cómo funciona KeySentinel?

KeySentinel permite:

  • Crear una clave maestra.
  • Agregar credenciales para servicios.
  • Consultar contraseñas almacenadas.
  • Eliminar servicios.
  • Listar todas las credenciales.

Todo el contenido sensible se almacena cifrado con GPG simétrico, sin dependencias externas.

Características técnicas

  • Cifrado simétrico mediante GnuPG.
  • Almacenamiento cifrado local.
  • Control de sesión de 5 minutos.
  • Interfaz CLI simple.
  • Dependencias mínimas.

Decisión de diseño: se utiliza cifrado simétrico por simplicidad y portabilidad. No se manejan llaves públicas/privadas.

Instalación y uso de KeySentinel

Clonar el repositorio y asignar permisos de ejecución:

Bash
git clone https://github.com/Gabriel-GR14/gestorkeysentinel.git
cd gestorkeysentinel
chmod +x keysentinel.sh

Inicio del Gestor

Para iniciar KeySentinel:

Bash
./keysentinel.sh

En el primer uso se solicitará crear una clave maestra, que será utilizada tanto para:

  • Cifrar las credenciales.
  • Desbloquear el gestor cuando la sesión expire.

Uso del programa

KeySentinel funciona mediante flags:

Bash
./keysentinel.sh [opción]

Opciones disponibles

  • -a: Agregar una nueva contraseña.
  • -c: Consultar una contraseña.
  • -r: Eliminar una contraseña.
  • -l: Listar contraseñas guardadas.
  • -h: Mostrar ayuda.

Ejemplos de uso

Agregar una contraseña:

Bash
./keysentinel.sh -a

Se solicitará:

  • Nombre del servicio.
  • Email/usuario.
  • Contraseña del servicio.
  • Clave maestra para cifrar las credenciales (se te pedirá una primera vez para crearla y esa misma clave será para cifrar y descifrar tus credenciales).

Consultar una contraseña

Bash
./keysentinel.sh -c

El sistema descifra temporalmente el archivo y muestra la credencial solicitada.

Eliminar un servicio

Bash
./keysentinel.sh -r

El servicio se elimina del archivo cifrado y se vuelve a proteger automáticamente.

Listar servicios guardados

Bash
./keysentinel.sh -l

Solo se listan los nombres de los servicios, sin mostrar contraseñas. Luego puedes consultar alguna contraseña si deseas.

Seguridad y consideraciones

KeySentinel implementa varias medidas básicas:

  • Las credenciales se almacenan en .logpass.gpg.
  • La clave maestra se gestiona vía .log.gpg.
  • La sesión se controla mediante .session.time (5 minutos).

Limitaciones conocidas

  • No hay protección contra keyloggers.
  • No hay auditoría ni rotación automática.
  • No hay protección contra fuerza bruta avanzada.

Aun así, el modelo es válido para aprender cómo funcionan gestores reales a bajo nivel.

Estructura del proyecto

Te dejo aqui la estructura del proyecto como tal, basado en seguridad de las credenciales:

gestorkeysentinel/
├── keysentinel.sh
├── .log.gpg            # Archivo cifrado de la clave maestra
├── .logpass.gpg        # Archivo cifrado de servicios
├── .session.time       # Control de sesión

Conclusión

KeySentinel demuestra que con herramientas simples es posible construir soluciones funcionales y seguras a nivel básico.

Más allá del uso práctico, el verdadero valor del proyecto está en:

  • Entender cifrado simétrico.
  • Manejar información sensible.
  • Pensar seguridad desde el diseño.

Código fuente en mi GitHub para análisis y mejoras continuas.

GabrielGR

Categorías

Etiquetas

Te pueden interesar

Te pueden interesar

Categorías

Etiquetas