// DevOps

Bitwarden CLI: gestión de contraseñas desde la terminal y automatización de CI/CD

Publicado el 02.06.2026

En el artículo anterior desplegamos nuestro propio servidor Vaultwarden. Hoy — cómo trabajar con él desde la consola e integrarlo en la automatización.

Bitwarden CLI (la utilidad bw) — la herramienta oficial de línea de comandos de código abierto. Permite buscar credenciales directamente en el terminal y pasar secretos de forma segura a scripts y pipelines (GitHub Actions, GitLab CI, etc.). Es completamente gratuita y compatible con Vaultwarden autohospedado.


1. Instalación

bash
# A través de NPM (cualquier SO)
npm install -g @bitwarden/cli

# macOS
brew install bitwarden-cli

# Linux (Ubuntu/Debian)
sudo snap install bw

Comprobamos:

bash
bw --version

2. Conexión a tu servidor

Por defecto el CLI apunta a la nube de Bitwarden. Cambiamos a Vaultwarden:

bash
bw config server https://vault.yourdomain.com

3. Autenticación: dos escenarios

Escenario A: Inicio de sesión interactivo (PC personal)

bash
bw login

Escenario B: Inicio no interactivo (CI/CD)

Genera claves API en la interfaz web: Configuración de la cuenta → Seguridad → Claves de API, luego:

bash
export BW_CLIENTID="user.xxxxx-xxxx-xxxx"
export BW_CLIENTSECRET="xxxxxxxxxxxxxx"

bw login --apikey

4. Desbloqueo del almacén y BW_SESSION

login solo autoriza en el servidor — los datos aún están cifrados. Para descifrarlos:

bash
bw unlock

El sistema devolverá un token de sesión:

bash
export BW_SESSION="AI39...=="

Copia y ejecuta esta línea. Mientras la variable $BW_SESSION esté establecida, la utilidad descifra las contraseñas localmente en memoria sin pedir la contraseña maestra en cada comando.

En scripts — en una sola línea:

bash
export BW_SESSION=$(bw unlock --passwordenv BW_PASSWORD --raw)

5. Comandos principales

TareaComando
Buscar elementobw list items --search "github"
Obtener contraseñabw get password "github"
Obtener usuariobw get username "github"
Código TOTP (2FA)bw get totp "github"
Objeto completobw get item <ID>

Copiar la contraseña al portapapeles (Linux):

bash
bw get password github | xclip -selection clipboard

6. Plantilla de script para CI/CD

bash
#!/usr/bin/env bash
set -e

# 1. Dirección del servidor
bw config server https://vault.yourdomain.com

# 2. Inicio de sesión con claves API (BW_CLIENTID y BW_CLIENTSECRET — en variables de entorno del CI)
bw login --apikey

# 3. Desbloqueo
export BW_SESSION=$(bw unlock --passwordenv BW_PASSWORD --raw)

# 4. Obtenemos el secreto por ID del elemento
# Averiguar el ID de antemano: bw list items --search "my-db"
DB_PASS=$(bw get item "8a562df1-443b-4892-baee-b123456789ab" | jq -r '.login.password')

echo "Запуск деплоя..."
# ./deploy.sh --pass=$DB_PASS

# 5. Finalizamos la sesión
bw logout

Reglas de seguridad

  1. No guardes BW_SESSION en disco — solo en la memoria de la sesión actual o del proceso CI/CD.
  2. Siempre llama a bw logout al final de los scripts — limpia las cachés cifradas locales.
  3. Enmascara la salida en CI/CD — usa mecanismos de enmascaramiento de secretos (::add-mask:: en GitHub Actions), para que las contraseñas no aparezcan en logs públicos.

Conclusión

Bitwarden CLI convierte a Vaultwarden en un almacén de secretos completo para la infraestructura. Al hardcodear contraseñas en configuraciones y repositorios Git — fin.

Si Vaultwarden aún no está desplegado — comienza por el artículo anterior: Vaultwarden en 30 minutos.

// Reviews

Reseñas relacionadas

Llegué con una solicitud costosa para la configuración de un servidor VPS, pero durante la consulta Mikhail propuso una solución mucho más sencilla y económica. Al final ahorré dinero y tiempo. Mikhail — un verdadero experto que trabaja por el resultado del cliente, no por la factura. ¡Lo recomiendo!

Llegué con una solicitud costosa para la configuración de un servidor VPS, pero durante la consulta Mikhail propuso una solución mucho más simple y económica. Al final ahorré presupuesto y tiempo. Mikhail es un …

kfhzasorin

Configuración de VPS, configuración del servidor

12.05.2026 · ★ 5/5

Hubo varios problemas, tanto en la parte técnica como en la comprensión general. Mijaíl respondió rápido a la solicitud, ayudó a aclarar las cosas y resolvió los problemas técnicos; por ello, muchas gracias. Estoy satisfecho con el resultado.

Hubo varios problemas relacionados tanto con la parte técnica como con la comprensión en general. Mijaíl respondió rápidamente a la solicitud, ayudó a aclarar las cosas y resolvió los problemas técnicos, por lo que le …

abazawolf

Configuración de VPS, configuración del servidor

18.02.2026 · ★ 5/5

// Contact

¿Necesitas ayuda?

Escríbeme y te ayudaré a resolver el problema

Escribir en Telegram

Отвечаю в течение рабочего дня (03:00–13:00 GMT)

Или оставьте заявку здесь:

Enviar solicitud
Escribir y recibir una respuesta rápida