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:
git clone https://github.com/Gabriel-GR14/gestorkeysentinel.git
cd gestorkeysentinel
chmod +x keysentinel.shInicio del Gestor
Para iniciar KeySentinel:
./keysentinel.shEn 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.
⚠️ Esta clave no se recupera. Si se pierde, se pierde el acceso a las credenciales.
Uso del programa
KeySentinel funciona mediante flags:
./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:
./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
./keysentinel.sh -c
El sistema descifra temporalmente el archivo y muestra la credencial solicitada.
Eliminar un servicio
./keysentinel.sh -r
El servicio se elimina del archivo cifrado y se vuelve a proteger automáticamente.
Listar servicios guardados
./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ónConclusió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









