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":
~/.bwsessionnon 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.bwinvocato senza percorso assoluto fallisce nel contesto systemd: ilPATHdi un'unità non contiene~/.npm-global/bin. Ilcommand not foundviene 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