Saltar a contenido

Leer un secreto del cofre

Traducción automática del original francés.

El parque tiene dos cofres, y la primera pregunta es cuál consultar. El criterio es quién accede al secreto:

El secreto es… Cofre Herramientas
un secreto de máquina: clave de API, contraseña de servicio, token, clave SSH del host OpenBao, en su propia máquina (pi-bao) bao-get · bao-put
un secreto humano: cuenta web, código de recuperación, dispositivo personal Vaultwarden bws

Esta información data del 27-09-2026. Antes, todo vivía en Vaultwarden: una nota o un script más antiguo que buscaba una clave de API en él. Un administrador ya no crea entradas que tengan la forma de un secreto de máquina.

Secreto de máquina — OpenBao

# noms des clés d'un chemin (jamais les valeurs)
bao-get <hôte>/<stack> --keys

# lire une valeur, et la déplacer sans jamais l'afficher
bao-get <hôte>/<stack> <CLÉ> | ssh -p <port-ssh> <user>@<hôte> 'script-qui-lit-stdin'

# écrire : la valeur arrive sur stdin, jamais en argument
printf '%s' "$VALEUR" | bao-put <hôte>/<stack> <CLÉ> --maintenant

La ruta machines/<hôte>/<stack> es el espejo del archivo de secretos cifrado del stack. Un sincronizador lo descarga hasta el contenedor cada cinco minutos (--maintenant lo hace inmediatamente), y sube a OpenBao cualquier modificación realizada directamente en el archivo cifrado. Al inicio, los hosts nunca contactan con el cofre: leen su copia local, por lo que un cofre apagado no impide que ningún servicio se reinicie.

No se requiere ninguna acción humana para un secreto de máquina. Leer, escribir y ejecutar una clave se hace sin necesidad de solicitarlo.

Secreto humano — Vaultwarden

El cofre está ya desbloqueado: un servicio mantiene la sesión en ~/.cache/bw/session.

# 1. trouver l'identifiant de l'entrée — TOUJOURS filtrer
~/bin/bws list items --search <motif> | jq -r '.[] | "\(.id)  \(.name)"'

# 2. lire la valeur, par un tube
~/bin/bws get password <identifiant> | <consommateur-qui-lit-stdin>

Nunca ejecutar bw unlock

Sin terminal interactivo, el comando espera hasta que caduque — y el cofre ya estaba abierto. Se está perdiendo tiempo en un problema que no existe.

bws list sin filtro, el objeto completo, incluyendo la contraseña

De ahí el jq del paso 1. No se trata de una comodidad visual: es lo que evita imprimir todas las contraseñas que coincidan con el patrón.

Dos errores disfrazados de "cofre bloqueado":

  1. ~/.bwsession ya no existe (eliminado el 2026-08-20). Era un caché órfano, fijado en una sesión de junio, que varias sesiones reclamaban turno tras turno, mientras que el servicio, por su parte, escribía en ~/.cache/bw/session.
  2. bw llamado sin un camino absoluto falla en el contexto de systemd: el PATH de un La unidad no contiene ~/.npm-global/bin. El command not found se consume, y el llamador concluye "cofre cerrado" sobre un cofre abierto.

Lo que comparten ambos cofres

El valor pasa por un tubo, nunca a través de la pantalla, un comando o una variable mostrada: no atraviesa el contexto del agente, ni el registro de sesión, ni la lista de procesos.

Un secreto se registra tan pronto como se instala, en la misma sesión, y no más tarde. Un secreto que solo vive en un .env en un host es un secreto que nadie podrá recuperar cuando el host falle.

Dernière vérification de cette page : 2026-10-06