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":
~/.bwsessionya 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.bwllamado sin un camino absoluto falla en el contexto de systemd: elPATHde un La unidad no contiene~/.npm-global/bin. Elcommand not foundse 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