
Reutilizar contraseñas o guardarlas en un .txt es la forma más rápida de comprometer una infraestructura. Un gestor de contraseñas resuelve el problema: una sola contraseña maestra para acceder a todas las demás, almacenadas cifradas. Para equipos técnicos, la elección está entre Bitwarden (cloud/self-hosted, colaborativo) y KeePass (local, sin servidor).
Bitwarden: el gestor colaborativo
Bitwarden es open source, tiene clientes para todas las plataformas y permite compartir credenciales entre miembros del equipo con control de acceso por carpetas y colecciones.
Instalación del servidor self-hosted (Vaultwarden)
Si quieres control total, instala Vaultwarden (implementación compatible con Bitwarden API):
docker run -d \
--name vaultwarden \
-e ADMIN_TOKEN=$(openssl rand -base64 48) \
-v /opt/vaultwarden/data:/data \
-p 127.0.0.1:8080:80 \
--restart unless-stopped \
vaultwarden/server:latest
Coloca Nginx delante con SSL:
server {
listen 443 ssl http2;
server_name vault.miempresa.com;
ssl_certificate /etc/letsencrypt/live/vault.miempresa.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/vault.miempresa.com/privkey.pem;
location / {
proxy_pass http://127.0.0.1:8080;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
CLI de Bitwarden para scripts
npm install -g @bitwarden/cli
bw login admin@miempresa.com
export BW_SESSION=$(bw unlock --raw)
bw list items --search "servidor-produccion" | jq '.[0].login'
bw get password "servidor-produccion-db"
DB_PASS=$(bw get password "prod-postgres" --session $BW_SESSION)
psql -h db.miempresa.com -U admin -d produccion <<< "SELECT COUNT(*) FROM users;"
Bitwarden en la organización
Conceptos clave:
- Colección: carpeta compartida entre miembros (ej: «Servidores Producción», «AWS»)
- Grupo: conjunto de usuarios con los mismos permisos
- Políticas: en planes Business puedes forzar 2FA, longitud mínima de contraseñas, etc.
KeePass: el gestor local sin servidor
KeePass almacena todo en un archivo .kdbx cifrado con AES-256. Sin servidor, sin nube, sin suscripción. Ideal para individuos o equipos pequeños que sincronizan el archivo por red o Nextcloud.
Instalación
sudo apt install keepassxc
winget install KeePassXCTeam.KeePassXC
Estructura del archivo .kdbx
Organiza las entradas en grupos (carpetas):
- 🖥️ Servidores Linux
- 🪟 Servidores Windows
- 🌐 Servicios Cloud (AWS, Azure, GCP)
- 🔑 APIs y Tokens
- 📱 Cuentas personales
Buenas prácticas con KeePass
- Contraseña maestra larga (más de 20 caracteres) + archivo de clave (key file).
- Sincroniza el
.kdbxpor Nextcloud, SharePoint o una carpeta compartida cifrada. - Nunca sincronices por Dropbox público sin cifrado adicional.
- Activa el historial de contraseñas (KeePass guarda versiones anteriores de cada entrada).
- Configura el bloqueo automático por inactividad (5 minutos).
KeePassXC CLI
keepassxc-cli show -s /ruta/mi-base.kdbx "Servidores Linux/web01-root"
keepassxc-cli export /ruta/mi-base.kdbx > /tmp/export.csv
keepassxc-cli generate -L 32 --upper --lower --numbers --special
Generar contraseñas seguras desde la terminal
openssl rand -base64 32
tr -dc 'A-Za-z0-9!@#$%^&*' < /dev/urandom | head -c 24; echo
python3 -c "import secrets, string; print(secrets.token_urlsafe(32))"
shuf -n 4 /usr/share/dict/words | tr '\n' '-'
Comparativa rápida
| Característica | Bitwarden/Vaultwarden | KeePass |
| Almacenamiento | Servidor (cloud o propio) | Archivo local |
| Colaboración | Excelente (colecciones, grupos) | Básica (compartir archivo) |
| Clientes | Web, apps móviles, extensiones | Desktop + extensiones |
| CLI | Sí, potente | Sí (keepassxc-cli) |
| Offline | Con app de escritorio | Siempre |
| Coste | Gratis (self-hosted) | Gratis |
| Complejidad | Media (servidor+SSL) | Baja |
Para equipos, Bitwarden/Vaultwarden es superior: gestión de acceso granular, auditoría de uso y sin depender de sincronización manual de archivos. Para uso individual o equipos muy pequeños que prefieren cero dependencias de servidor, KeePass sigue siendo una opción excelente. Cualquiera de los dos es infinitamente mejor que reutilizar contraseñas o guardarlas en texto plano.