Vai al contenuto

Recuperare un segreto dal cofre

Traduzione automatica dell'originale francese.

Il parco ha due cofre, e la prima domanda è quale interrogare. Il criterio è chi memorizza il segreto:

Il segreto è… Cofre Strumenti
un segreto di sistema: chiave API, password di servizio, token, chiave SSH dell'host OpenBao, sulla propria macchina (pi-bao) bao-get · bao-put
un segreto umano: account web, codice di recupero, dispositivo personale Vaultwarden bws

Questo metodo risale al 27 settembre 2026. Prima, tutto era gestito da Vaultwarden: una nota o uno script più vecchio che vi cercava una chiave API descrive la situazione precedente. Un amministratore ora rifiuta di creare un'entrata che abbia la forma di un segreto di sistema.

Segreto di sistema — 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

Il percorso machines/<hôte>/<stack> è lo specchio del file di segreti crittografato dello stack. Un sincronizzatore lo scarica nel container ogni cinque minuti (--maintenant lo fa immediatamente), e riporta in OpenBao tutte le modifiche effettuate direttamente nel file crittografato. All'avvio, gli host non contattano mai il cofre: leggono la loro copia locale, quindi un cofre spento non impedisce a nessun servizio di riavviarsi.

Non è necessario alcun intervento umano per un segreto di sistema. Leggere, scrivere e utilizzare una chiave avviene senza richiedere alcun intervento.

Segreto umano — Vaultwarden

Il cofre è già sbloccato: un servizio mantiene la sessione in ~/.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>

Non mai eseguire bw unlock

Senza terminale interattivo, il comando rimane bloccato fino alla scadenza — e il cofre era già aperto. Si tratta di un tempo perso su un problema che non esiste.

bws list senza filtro rende l'oggetto completo, inclusa la password

Da cui il punto jq del primo passaggio. Non si tratta di un semplice aspetto visivo: serve a evitare di stampare tutte le password corrispondenti al modello.

Ci sono due errori che si nascondono dietro il concetto di "cassaforte bloccata":

  1. ~/.bwsession non esiste più (eliminato il 2026-08-20). Era un cache isolato, bloccato su una sessione di giugno, che diverse sessioni avevano reclamato a turno, mentre il servizio, nel frattempo, scriveva in ~/.cache/bw/session.
  2. bw invocato senza percorso assoluto fallisce nel contesto systemd: il PATH di un'unità non contiene ~/.npm-global/bin. Il command not found viene consumato, e chi chiama conclude che c'è una "cassaforte bloccata" su una cassaforte aperta.

Cosa condividono entrambe le cassette

Il valore passa attraverso un canale, mai attraverso lo schermo, un argomento della riga di comando o una variabile visualizzata: non attraversa il contesto dell'agente, il log di sessione o l'elenco dei processi.

Un segreto viene registrato non appena viene installato, nella stessa sessione, e non prima. Un segreto che esiste solo in un .env su un host è un segreto che non verrà ritrovato quando l'host smetterà di funzionare.

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